首页 > 解决方案 > 使用问题

问题描述

我是 Selenium 的新手,在访问要显示列表的列表时遇到问题,您必须单击该列表,然后选择一个特定选项,我的选项是“自然”,我的页面有下一个代码:

   <div id="tipoIdentificacion_panel" class="ui-selectonemenu-panel ui-widget-content ui- 
    corner-all ui-helper-hidden ui-shadow" style="">
   <div class="ui-selectonemenu-items-wrapper" style="height:auto">
   
   <ul class="ui-selectonemenu-items ui-selectonemenu-list ui-widget-content ui-widget 
   ui-corner-all ui-helper-reset">
   <li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all ui-state- 
    highlight" data-label="Seleccione...">Seleccione...</li>
   <li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" data- 
    label="NATURAL">NATURAL</li>
   <li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all" data- 
    label="JURIDICA EXTRANJERA">JURIDICA EXTRANJERA</li>
   </ul>
   </div>
   </div>

在Java中,我有下一个代码来识别列表的元素

    WebDriverWait wait = new WebDriverWait(driver, 50);             
                    
    WebElement TipoPersonas= 
    driver.findElement(By.xpath("//*@id="tipoPersona_panel"]/div/ul"));
    List<WebElement> TipoPersona=TipoPersonas.findElements(By.tagName("li"));       
        
    for (WebElement lis : TipoPersona) {
     if (lis.getText().equals("NATURAL")) {
         lis.click();
       }

问题是永远找不到值“自然”,因为值lis.getText()总是为空,而且比较不可能,我们能帮帮我吗?

标签: javaseleniumhtml-listsgettext

解决方案


请尝试以下代码:

 List<WebElement> TipoPersonas= 
    driver.findElements(By.xpath("//div[@class='ui-selectonemenu-items-wrapper']/ul/li"));  
    System.out.println("Size Tipopersona: " + TipoPersonas.size());   
    for (WebElement lis : TipoPersonas) {
          System.out.println("Value is" + lis.getText());    
          if(lis.getText().equalsIgnoreCase("NATURAL")) {
          lis.click();
     }
    }

推荐阅读