/ / Detener la carga del navegador de selenium webdriver - google-chrome, selenium, webdriver

Detenga la carga del navegador desde Selenium webdriver - google-chrome, selenium, webdriver

Mi selenio webdriver va a una página y espera a que esa página termine de cargarse. Si transcurren 30 segundos, se agota el tiempo de espera y el script falla.

¿Hay alguna forma de que el controlador web detenga la carga de la página después de 30 segundos (como presionar la "x" en el navegador)? Esto evitará que mi conductor agote el tiempo de espera.

Estoy usando Chromedriver.

Respuestas

3 para la respuesta № 1

Esta es la forma en que me encontré con este problema. Estaré usando de esta manera hasta que Chrome soporte pageload.

Instalé una extensión en Chrome llamada Stop load y configuré 5 segundos de stop load.

Luego inicié mi controlador con la configuración predeterminada:

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--user-data-dir="+System.getProperty("user.home")+"\AppData\Local\Google\Chrome\User Data"));
System.setProperty("webdriver.chrome.driver", "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe");
driver = new ChromeDriver(capabilities);

Si la página en Chrome no se carga en 5 segundos, su extensión se encargará de eliminarla en 5 segundos.

En cierto modo, funciona como una espera implícita si establece el tiempo de parada de carga adecuado en la extensión


1 para la respuesta № 2

Intenta usar esto:

   driver.manage().timeouts().pageLoadTimeout();

Documentación:
Tiempo de espera de carga de página

Además, como consejo, no puede acceder a los controles nativos del navegador con Selenium WebDriver. Si quieres hacer eso, usa herramientas como Sikuli si está utilizando Linux o AutoIt para ventanas.


1 para la respuesta № 3

Puede detener la carga de la página en Rubí utilizando JavaScript función window.stop() y metodo Selenium::WebDriver::Driver#execute_script:

driver.execute_script("window.stop()")