如何使用Selenium迭代所有表页面?

时间:2011-05-19 06:58:21

标签: python selenium pagination

我正在尝试查看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 个答案:

答案 0 :(得分:0)

基本思路是在开启另一个表页面时等待所有AJAX返回页面。 尝试使用一对方法:流利的等待+ isElementDisplayed。

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;              }     ;

选择每个表页面上存在的任何Web元素,并使用流畅的等待等待它,然后切换到下一个表页面。 +使用

添加其他检查
String cssSelector= ....
driver.findElement(By.cssSelector(cssSelector)).isDisplayed()

希望这适合你)