如何用Selenium遍历所有表格页?

2 投票
1 回答
1374 浏览
提问于 2025-04-16 17:56

我想查看从第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()

希望这对你有帮助!)

撰写回答