如何用Selenium遍历所有表格页?
我想查看从第1页到第50页的所有页面。不过,我在用 iselementpresent
遍历所有页面时遇到了问题。
这是表格的页面:
1 2 3 4 5 6 7 8 9 10 ...
我尝试用
If iselementpresent(nextpagenumber) then
click on nextPageNumber
else:
print "done"
来逐一遍历每一页。但是,当 iselementpresent()
到达第12页时,它会说第12页不存在,然后给我报错。难道 iselementpresent
不是应该帮我避免出现错误的吗?
1 个回答
1
基本的想法是在切换到另一个表格页面时,等待所有的AJAX请求返回到页面上。可以尝试使用一对方法:流畅等待和检查元素是否显示。
public WebElement fluentWait(final By locator){
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(
new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
}
);
return foo; } ;
选择一个在每个表格页面上都存在的网页元素,使用流畅等待来等待它,然后再切换到下一个表格页面。+ 另外加一个检查
String cssSelector= ....
driver.findElement(By.cssSelector(cssSelector)).isDisplayed()
希望这对你有帮助!)