[英]How to handle pagination in selenium Webdriver
这是我运行时的代码,它转到第二页并停止它,而不是循环所有页面并搜索所需的元素。 它应该在页面中查找特定文本并单击它的链接。
if (driver.getTitle().contains("Article properties")) {
WebElement assigninitial = driver.findElement(By.partialLinkText("Assign reviewer for initial review"));
assigninitial.click();
} else {
//pagination code
//driver.findElement(By.xpath("/html/body/app/main/app-mytasks/div[1]/section/div/pagination/ul/li[3]/a")).click();
@SuppressWarnings("unchecked")
ArrayList<WebElement> pagination = (ArrayList<WebElement>) driver.findElements(By.xpath("/html/body/app/main/app-mytasks/div[1]/section/div/pagination/ul/li[5]/a"));
// checkif pagination link exists
if ((pagination).size() > 0) {
//System.out.print("pagination exists");
// click on pagination link
for (int i = 0; i < pagination.size(); i++) {
pagination.get(i).click();
if (driver.getPageSource().contains("Article properties")) {
WebElement assigninitial = driver.findElement(By.partialLinkText("Assign reviewer for initial review"));
assigninitial.click();
}
}
} else {
System.out.print("pagination not exists");
}
}
public void pagination_check() throws InterruptedException {
loader_wait(5); //wait until 'loader' loading
List<WebElement> pagination = driver.findElements(By.xpath("//page-navigation/div/div/span/a"));
Thread.sleep(5000);
if (pagination.size() > 0) {
System.out.println("pagination exists and size=>"+pagination.size());
int page_no=pagination.size();
for (int i = 2; i <= pagination.size(); i++) {
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView();", driver.findElement(By.xpath("//page-navigation/div/div/span"))); //for
scroller move
js.executeScript("arguments[0].click();", driver.findElement(By.xpath("//page-navigation/div/div/span/a["+i+"]")));
loader_wait(5); //wait
}
} else {
System.out.println("no pagination");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.