2014-05-07 4 views
-1

La commande Selenium RC selenium.waitForPageToLoad("30000") ne fonctionne pas dans WebDriver. Existe-t-il une autre commande pour cela dans WebDriver?Tests d'automatisation avec sélénium WebDriver?

+0

Comment définissez-vous "ne fonctionne pas"? N'attend-il pas? Est-ce qu'il lance une erreur? Est-ce que la page finit de charger, mais que le webdriver continue d'attendre? –

Répondre

0

Il existe deux types d'attentes que vous pouvez utiliser dans Selenium; implicite et explicite.

Ci-dessous des exemples sont écrits en Java:

1) explicite Wait:

new WebDriverWait(super.getDriver(), 10).until(ExpectedConditions.elementToBeClickable(site_logo)); 

code ci-dessus va attendre 10 secondes pour l'élément logo du site pour être cliquable, sinon il lancera une exception. La classe ExpectedConditions a beaucoup d'autres méthodes que vous pouvez utiliser. Vous pouvez vérifier si un élément est présent ou non etc ...

2) Attendez Implicite:

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

Une attente implicite est de dire WebDriver au sondage DOM pour un certain laps de temps en essayant de trouvez un élément ou des éléments s'ils ne sont pas immédiatement disponibles. Le paramètre par défaut est 0. Une fois défini, l'attente implicite est définie pour la durée de vie de l'instance de l'objet WebDriver.

Il y a aussi Thread.sleep (Time en millisecondes); méthode, mais je ne vous recommande pas d'utiliser celui-ci.

Pour plus d'informations: http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp

0

Vous pouvez utiliser WebDriveWait pour le résoudre:

http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp

Pour en attente d'un élément, l'utilisation wait.until (ExpectedConditions.visibilityOfElementLocated):

@Test 
public void test1() throws Exception { 
    WebDriverWait wait = new WebDriverWait(driver, 1); 
    driver.get("example.html"); 
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(elementLocation)));  
    driver.close(); 
} 
Questions connexes