2016-09-30 34 views
0

我从Mavenproject使用Selenium和Java。Selenium java查找多个显示的元素

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

问题是,我正在寻找吨元素+ - 50. 所以我有大约50这些线。我正在努力寻找更有效的方法。是不是一个更简单的方法来写在1行搜索多个元素,并检查是否所有显示?

Like Find .... 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(); 

回答

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(); 
} 
+0

工程就像一个魅力,谢谢 – Decypher

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; 
      } 
     }