Selenium Java检查是否存在Weblist元素

Selenium Java检查是否存在Weblist元素,java,selenium,selenium-webdriver,automation,ui-automation,Java,Selenium,Selenium Webdriver,Automation,Ui Automation,我需要自动执行一个场景,我需要单击“全部展开”按钮并检查所有过滤器是否已展开,然后单击“全部折叠”按钮并检查所有过滤器是否已折叠 我使用的方法是将所有过滤器放在一个weblist中,获取其大小&然后使用assert方法检查其是否为非空,但对于检查折叠功能,同样的方法失败了 是否有一种方法可以像检查单个webelement的isDisplay()一样检查webelements列表的可见性或存在性 下面是我尝试的上述逻辑的代码: driver.findElement(By.linkText("Exp

我需要自动执行一个场景,我需要单击“全部展开”按钮并检查所有过滤器是否已展开,然后单击“全部折叠”按钮并检查所有过滤器是否已折叠

我使用的方法是将所有过滤器放在一个weblist中,获取其大小&然后使用assert方法检查其是否为非空,但对于检查折叠功能,同样的方法失败了

是否有一种方法可以像检查单个webelement的isDisplay()一样检查webelements列表的可见性或存在性

下面是我尝试的上述逻辑的代码:

driver.findElement(By.linkText("Expand All")).click();
Thread.sleep(3000);
System.out.println("Clicking on the Expand All option");

Assert.assertFalse(driver.findElements(By.cssSelector("input[type='checkbox']")).isEmpty(),"The Filters are not expanded"); 

int filters_max_size=driver.findElements(By.cssSelector("input[type='checkbox']")).size();

System.out.println("There are total "+filters_max_size+ "filters expanded");

System.out.println("Clicking on the Collapse All option");
Reporter.log("Clicking on the Collapse All option");

driver.findElement(By.id("collapse_all")).click();
Thread.sleep(3000);

Assert.assertTrue(driver.findElements(By.cssSelector("input[type='checkbox']")).isEmpty(),"The Filters are not collapsed"); 
Assert.assertEquals(0, driver.findElements(By.cssSelector("input[type='checkbox']")).,"The Filters are not collapsed");


<a class="refinement_anchor" href="/search?button=search&expand_all=5B%5D=%7B%22s%22%3A%5B%7B%22id%22%3A%22%22%2C%22xPath%22%3A%22%24source_type%22%2C%22logic%22%3A%22OR%22%2C&utf8=%E2%9C%93">
<input id="refinement_214391870" class="flex" type="checkbox" name="refinement_214391870">
<label class="text" for="refinement_214391870">
<div class="text refinement_information">
<span class="label" data-token="{"s":[{"id":"refine_source_type","xPath":"$source_type","logic":"OR","s":[{"n":"Selective"}]}]}" title="Selective"> Selective </span>
<span class="ndocs"> (136,292) </span>
</div>
</label>
</a>
</li>
<li class="text no_children ">
</ul>
<a class="show_all" href="/search/show_all?button=search&id=&q=&types=&utf8=%E2%9C%93&widget_id=refine_source_type">Show all</a>
</div>
driver.findElement(By.linkText(“全部展开”))。单击();
睡眠(3000);
System.out.println(“单击全部展开选项”);
Assert.assertFalse(driver.findElements(By.cssSelector(“input[type='checkbox']))).isEmpty(),“过滤器未展开”);
int filters_max_size=driver.findElements(By.cssSelector(“输入[type='checkbox'])).size();
System.out.println(“有总数”+过滤器最大大小+“过滤器扩展”);
System.out.println(“单击全部折叠选项”);
log(“单击全部折叠选项”);
driver.findElement(By.id(“collapse_all”))。单击();
睡眠(3000);
Assert.assertTrue(driver.findElements(By.cssSelector(“input[type='checkbox']))).isEmpty(),“过滤器未折叠”);
Assert.assertEquals(0,driver.findElements(由.cssSelector(“输入[type='checkbox'])),“过滤器未折叠”);

  • 您可以尝试以下操作:

     driver.findElement(By.id("collapse_all")).click();
     Thread.sleep(3000);
    
    WebElement allFilters = driver.findElements(By.cssSelector("input[type='checkbox']"));
    for(WebElement filter : allFilters) {
    
     if(filter.isDisplayed()){
    
       System.out.println(filter.getText() + " is still displayed." );
       break;
     }}
    
    您可以尝试以下操作:

     driver.findElement(By.id("collapse_all")).click();
     Thread.sleep(3000);
    
    WebElement allFilters = driver.findElements(By.cssSelector("input[type='checkbox']"));
    for(WebElement filter : allFilters) {
    
     if(filter.isDisplayed()){
    
       System.out.println(filter.getText() + " is still displayed." );
       break;
     }}
    

    单击“全部折叠”后,您可以为每个复选框使用下面的代码来验证是否显示该复选框。如果显示元素,则下面的语句将返回true,否则将返回false(在您的场景中折叠时)


    单击“全部折叠”后,您可以为每个复选框使用下面的代码来验证是否显示该复选框。如果显示元素,则下面的语句将返回true,否则将返回false(在您的场景中折叠时)


    折叠后得到的大小是多少。单击“折叠”后是否可以尝试打印大小该大小是86&在展开和折叠时大小保持不变是的,这意味着它们仍然连接到dom。您可以为每个元素检查isclickable()。您尝试过isDisplayed()吗我使用的是findelement,而不是findelement,isDisplayed因为我必须检查所有86个过滤器的可见性,isDisplayed()不适用于所有这些输入标记生成的html标记中的WebList。您是否可以共享html。在这86个复选框中,您可以检查某些复选框的可见性,因为它是一次性展开的。折叠后得到的大小是多少。您是否可以在单击“折叠”后尝试打印大小大小大小是86,大小保持不变扩展和折叠时是的,这意味着它们仍然连接到dom。您可以检查每个元素的isclickable()。您尝试过isDisplayed()吗我使用的是findelement,而不是findelement,isDisplayed,因为我必须检查所有86个过滤器的可见性,isDisplayed()不适用于所有输入标记生成的html标记中的WebList。您可以共享html吗?在这86个复选框中,您可以检查某些复选框的可见性,因为这是一次性扩展,对吗