superior suboficial sub salta policia para pagina oficiales jerarquias inscripciones inscripcion ingreso infanteria formulario estudio escuela entrar cartilla capital aspirantes agentes ruby selenium-webdriver capybara net-http page-load-time

ruby - suboficial - El carpincho aumenta el tiempo máximo de carga de la página permitido



manual de estudio para aspirantes a la escuela de sub oficiales y agentes (1)

Tengo una página que a veces se carga en más de un minuto. Supongamos que este es el comportamiento esperado y no cambiará. En estos casos, obtengo Net::ReadTimeout .

Tenga en cuenta que esto es después de navegar a una página haciendo clic en un botón en la página anterior, no una solicitud de Ajax. Por lo tanto, Capybara.using_wait_time no ayuda.

He intentado una serie de cosas radicales (algunas de las cuales sabía que no funcionarían) como:

  • Configurando implicit_wait , script_timeout y page_load .
  • Looping a través de todo el espacio de objetos y configurando todo el valor de timeout Selenium::WebDriver::Remote::Http::Default .
  • Looping a través de todo el espacio de objetos y configuración de Net::HTTP ''s read_timeout .
  • page.driver.browser.send(:bridge).http.instance_variable_get(:@http).read_timeout=

Ninguno parece funcionar. Esto debería ser muy trivial, aún así no pude encontrar una manera de hacerlo.

Si conoce una solución agnóstica de webdriver, sería genial. Si no, estoy usando selenio .


Selenium tiene una gran cantidad de configuraciones de tiempo de espera diferentes, algunas de las cuales se pueden cambiar en el tiempo de ejecución, otras que se deben establecer cuando se inicializa el controlador. Lo más probable es que se encuentre con el Http :: Tiempo de espera predeterminado, que por defecto es de 60 segundos. Puede anular esto pasando su propia instancia en el controlador de Selenium como http_client

Capybara.register_driver :slow_selenium do |app| client = Selenium::WebDriver::Remote::Http::Default.new client.timeout = 120 Capybara::Selenium::Driver.new(app, http_client: client) end

y luego use el controlador: slow_selenium para las pruebas que tomarán más de un minuto para cargar la página