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
ypage_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
''sread_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