2 回答
TA贡献1807条经验 获得超9个赞
这是您需要的逻辑。
//Number of search pages found should be 7
List<WebElement> resultPages=driver.findElements(By.xpath("//a[@href='#listTop' and @ng-click='setCurrent(pageNumber)']"));
Assert.assertEquals(7, resultPages.size());
for (int i = 1; i <= resultPages.size(); i++) {
driver.findElement(By.xpath("(//a[@href='#listTop' and @ng-click='setCurrent(pageNumber)'])[" + i +"]")).click();
System.out.println(driver.findElement(By.xpath("(//a[@href='#listTop' and @ng-click='setCurrent(pageNumber)'])[" + i +"]")).getText());
}
TA贡献1860条经验 获得超9个赞
您的 while 循环正在计算页面,但条件本身似乎是静态的(如果没有实际页面,我无法判断)。你可能想要更多类似的东西
int count=0;
WebElement next_button=driver.findElement(By.xpath("//a[@ng-click='setCurrent(pagination.current + 1)']"));
while (next_button != null){
next_button.click();
count++;
System.out.println("Current page is "+ count);
next_button=driver.findElement(By.xpath("//a[@ng-click='setCurrent(pagination.current + 1)']"));
}
至于您的 7 对 11 结果页面,如果没有 HTML 就很难分辨,但是您的 XPath 搜索是针对的,By.xpath("//a[@href='#listTop']")所以我会检查并查看您的 HTML 中的内容listTop。也许其他元素以某种方式使用该锚标记?
添加回答
举报