我是这个领域的新手,我想问一下如果我想要实现这个场景我怎么能循环:( JAVA代码涉及硒和WEBDRIVER)
我在列表视图中,例如帐户模块。然后在帐户模块中,如果有一个分页(点击更多帐户的按钮)那么我将点击它,当列表视图中没有看到更多的分页时,我将执行一个代码块。
如果列表视图中没有分页,那么我将自动执行代码块。
这是我的代码:
WebElement more = driver.findElement(By.xpath("/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[4]"));
List<WebElement> button = more.findElements(By.xpath("/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[4]/button"));
for(WebElement clicks:button){
for(int i=0; i!=100 ;i++){
if(clicks.isEnabled()){
driver.findElement(By.xpath("/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[4]/button")).click();
}else{
WebElement present = driver.findElement(By.xpath("/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[3]/div/table/tbody"));
List<WebElement> list = present.findElements(By.xpath("/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[3]/div/table/tbody/tr"));
System.out.println("Total Number of TR: " + list.size());
}
WebElement present = driver.findElement(By.xpath("/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[3]/div/table/tbody"));
List<WebElement> list = present.findElements(By.xpath("/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[3]/div/table/tbody/tr"));
System.out.println("Total Number of TR: " + list.size());
}
}
当我运行它时,我有这个错误在缓存中找不到元素 - 也许页面自查找以来已经改变
答案 0 :(得分:1)
使用try-catch结构检查分页元素是否存在(如果元素不存在则捕获错误)。 如果该元素不存在,则将给出错误,因此执行将永远不会到达else块的内容。因此,else块中的所有内容都应该位于catch块中,如果不存在分页元素,将执行该块。