2012-07-12 81 views
11

Estoy traduciendo algunas pruebas de Selenium RC a Selenium WebDriver utilizando la API de python. En Selenium WebDriver, me doy cuenta de que driver.get('http://...') parece esperar a que se cargue toda la página antes de continuar. ¿Hay alguna manera de no esperar que se cargue una página? Algunas de las páginas que estoy solicitando tienen muchos recursos externos que pueden tardar mucho tiempo en cargarse. Prefiero esperar que los elementos en el DOM estén presentes que esperar a que todo se cargue. Algunas de mis pruebas parecen tardar el doble en WebDriver debido a esto.Selenium WebDriver vaya a la página sin esperar la carga de la página

+1

@Slanec Ambos son increíbles. Mi ardua búsqueda ha llegado a una feliz conclusión. –

Respuesta

13

Sí y no. A partir de selenio 2.24.1, the support for this is only in Firefox - you have to run it in a special "mode":

FirefoxProfile fp = new FirefoxProfile(); 
fp.setPreference("webdriver.load.strategy", "unstable"); 
WebDriver driver = new FirefoxDriver(fp); 

Incluso puede configurar the timeout if you want to. Este método falla en cualquier navegador que no sea Firefox y no hace nada en Firefox sin la estrategia inestable:

driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS); 
+1

Gracias. Respondí mi pregunta por completo. – Jackson

+0

Además, al buscar objetos en la página esperada, si usa findElements() en lugar de findElement(), puede evitar los punteros nulos usando algo como 'if findElements() = 0 sigue intentándolo'. – djangofan

+0

¿Cuál es el código equivalente de Python para los tiempos de espera de carga de la página? –

Cuestiones relacionadas