Selenium java找到多个Displayed元素

时间:2016-09-30 07:11:37

标签: java selenium selenium-webdriver

我在Mavenproject中使用Selenium和Java。

我的代码正在运行,我只是想知道它是否可以改进。 在下面的代码中,您可以看到我正在寻找一些元素以及是否显示它们。

问题在于我正在寻找大量元素+ - 50。 所以我有大约50条线。我正在努力寻找一种更有效的方法。在一行中搜索多个元素并检查是否所有元素都不是一种更简单的方法吗?

喜欢寻找.... A,B,C,D,...,Y,Z .isDisplayed?

    boolean function_detail_breadcrumb_1_displayed = driver.findElement(By.cssSelector("[data-core2='403']")).isDisplayed();
    boolean function_detail_breadcrumb_2_displayed = driver.findElement(By.cssSelector("[data-core2='405']")).isDisplayed();
    boolean function_detail_breadcrumb_3_displayed = driver.findElement(By.cssSelector("[data-core2='407']")).isDisplayed();
    boolean function_detail_breadcrumb_4_displayed = driver.findElement(By.cssSelector("[data-core2='410']")).isDisplayed();
    boolean function_detail_breadcrumb_5_displayed = driver.findElement(By.cssSelector("[data-core2='413']")).isDisplayed();

2 个答案:

答案 0 :(得分:1)

注意:我假设您正在检查是否显示所有元素。

首先,您可以找到各种元素:

List<WebElement> breadCrumbList = driver.findElements(By.cssSelector("Your selector"));

然后遍历你的面包屑并检查:

        List<WebElement> breadCrumbList = driver.findElements(By.cssSelector("Your selector"));
        boolean isAllDisplayed = true;
        for(WebElement breadCrumb : breadCrumbList){
            if(breadCrumb.isDisplayed() == false){
                isAllDisplayed = false;
                break;
            }
        }

答案 1 :(得分:1)

如果您只想检查某些面包屑:

String[] breadCrumbs = new String[]{"403", "405", "407", "410", "413"};
for (String breadCrumb : breadCrumbs) {
    String selector = String.format("[data-core2='%s']", breadCrumb);
    boolean breadCrumbDisplayed = driver.findElement(By.cssSelector(selector)).isDisplayed();
}