【问题标题】:How to fetch dropdown value from List in selenium Webdriver by using java如何使用java从selenium Webdriver中的List中获取下拉值
【发布时间】:2017-01-12 14:53:37
【问题描述】:

如何将列表值视为下拉值?

如何从列表中选择编辑下拉值...

<div class="nice-select demoBasic" tabindex="0">
    <span class="current">Please select</span>
    <ul class="list">
        <li class="option" data-value="1">Edit</li>
        <li class="option" data-value="2">Delete</li>
    </ul>
</div> 

【问题讨论】:

    标签: java html sql selenium selenium-webdriver


    【解决方案1】:

    您应该尝试使用By.cssSelector() 来获取列表中的所有选项,如下所示:-

    WebDriverWait wait = new WebDriverWait(driver, 10);
    
    //First click on select div 
    WebElement select = wait.until(ExepectedConditions.elementToBeClickable(By.cssSelector("div.nice-select.demoBasic")));
    select.click();
    
    //Not get all nested options 
    List<WebElement> options = wait.until(ExepectedConditions.presenceOfNestedElementsLocatedBy(select, By.cssSelector("ul.list li.option")));
    
    //Now iterate to fetch all options and select edit option
    for(WebElement option : options)
    {
      if(option.getText().equals("Edit"))
      {
          option.click();
      }
    }
    

    或者您可以使用By.xpath()在一行文本的基础上选择一个选项,如下所示:-

    wait.until(ExepectedConditions.elementToBeClickable(By.xpath(".//li[text() = 'Edit']"))).click();
    

    【讨论】:

    • 感谢您的回复@Saurabh Gaur
    • @SaurabhGupta 没问题,试试看,如果有帮助,请告诉我...:)
    【解决方案2】:

    我得到了解决方案...

        driver.findElement(By.xpath("/html/body/div[1]/div[3]/div/div/div[2]/table/tbody/tr[3]/td[3]/div")).click();
        driver.manage().timeouts().implicitlyWait(6000, TimeUnit.SECONDS);
        Thread.sleep(4000);
        driver.findElement(By.xpath("/html/body/div[1]/div[3]/div/div/div[2]/table/tbody/tr[3]/td[3]/div/ul/li[1]")).click();
        driver.manage().timeouts().implicitlyWait(6000, TimeUnit.SECONDS);
        Thread.sleep(4000);
    

    【讨论】:

    • 这不是一个好的解决方案,您正在使用元素位置不稳定的 xpath.. 并且使用 Thread.sleep() 也不是最好的方法..您应该尝试使用 WebDriverWait 代替..
    猜你喜欢
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多