Selenium Webdriver 2.47.1如何等待页面重新加载

Kev*_*ier 1 java selenium-webdriver

我正在使用webdriver(java)进行独特的测试,登录时页面会自动重新加载,我一直无法等待元素加载,因为元素在重新加载之前就已经存在。到目前为止,我能够使其正常工作的唯一方法是使用thread.sleep,有没有办法监听页面刷新?

Kim*_*ler 6

解决此问题的一种方法是,获取所需元素的引用,该元素同时出现在登录页面和重新加载的页面上。然后可以使用ExpectedConditions.stalenessOf发生,然后可以确保从DOM中删除了该元素,并创建了一个新元素。好吧,这种方法不能保证最后一部分,但是至少您知道旧元素已经消失了。

代码看起来像这样:

WebElement elementOldPage = driver.findElement(By.id("yourid"));

... do login etc ...

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.stalenessOf(elementOldPage));

WebElement elementNewPage = driver.findElement(By.id("yourid"));
Run Code Online (Sandbox Code Playgroud)