Java 我如何循环一个按钮,如果它存在,然后单击,如果没有,然后继续代码
我是这个领域的新手,我想问,如果我试图实现这个场景,我如何循环:(涉及SELENIUM和WEBDRIVER的JAVA代码)Java 我如何循环一个按钮,如果它存在,然后单击,如果没有,然后继续代码,java,selenium,Java,Selenium,我是这个领域的新手,我想问,如果我试图实现这个场景,我如何循环:(涉及SELENIUM和WEBDRIVER的JAVA代码) 我在一个列表视图上,例如帐户模块。然后,在account模块中,如果有分页(单击按钮获取更多帐户),我将单击它,当listview中没有更多分页时,我将执行一段代码 如果listview中没有分页,那么我将自动执行一段代码 这是我的密码: WebElement more = driver.findElement(By.xpath("/html/body/div[
- 我在一个列表视图上,例如帐户模块。然后,在account模块中,如果有分页(单击按钮获取更多帐户),我将单击它,当listview中没有更多分页时,我将执行一段代码
- 如果listview中没有分页,那么我将自动执行一段代码
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());
}
}
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 button=more.findElements(按.xpath(“/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[4]/button”);
对于(WebElement单击:按钮){
对于(int i=0;i!=100;i++){
如果(单击.isEnabled()){
findelelement(By.xpath(“/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[4]/button”)。单击();
}否则{
WebElement present=driver.findElement(By.xpath(“/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div/div[3]/div/table/tbody”);
List List=present.findElements(By.xpath(“/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div/div[3]/div/table/tbody/tr”);
System.out.println(“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/div[3]/div/table/tbody”);
List List=present.findElements(By.xpath(“/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div/div[3]/div/table/tbody/tr”);
System.out.println(“TR总数:+list.size());
}
}
当我运行它时,我在缓存中找不到这个错误元素-可能页面在查找后已更改使用try-catch结构检查分页元素是否存在(如果元素不存在,则捕获错误)。
如果元素不存在,那么将给出一个错误,这样执行将永远不会到达else块的内容。因此,else块中的所有内容都应该在catch块中,如果分页元素不存在,就会执行catch块 这与上一个问题几乎完全相同:。在代码中不需要else块。只需删除它并尝试执行您的代码。