Java 我如何循环一个按钮,如果它存在,然后单击,如果没有,然后继续代码

Java 我如何循环一个按钮,如果它存在,然后单击,如果没有,然后继续代码,java,selenium,Java,Selenium,我是这个领域的新手,我想问,如果我试图实现这个场景,我如何循环:(涉及SELENIUM和WEBDRIVER的JAVA代码) 我在一个列表视图上,例如帐户模块。然后,在account模块中,如果有分页(单击按钮获取更多帐户),我将单击它,当listview中没有更多分页时,我将执行一段代码 如果listview中没有分页,那么我将自动执行一段代码 这是我的密码: WebElement more = driver.findElement(By.xpath("/html/body/div[

我是这个领域的新手,我想问,如果我试图实现这个场景,我如何循环:(涉及SELENIUM和WEBDRIVER的JAVA代码)

  • 我在一个列表视图上,例如帐户模块。然后,在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块。只需删除它并尝试执行您的代码。