Selenium WebDriver:如何在span下拉列表中选择一个值?

时间:2018-06-04 14:42:47

标签: java html selenium

我正在尝试让我的Selenium脚本点击下拉菜单中的值。但是,在我最初点击它之后,我无法在下拉列表中执行任何操作。我已经在线查看,如果下拉列表是“选择”,则只能找到答案。

以下是下拉列表的HTML:

<span class="select2-selection__rendered" title="1st item"
      id="select2-id_template_or_inspection-container">
</span>

以下是我点击下拉列表的代码段:

//Choose a Template from Dropdown

WebElement dropdownBtn = webDriver.findElement(
            By.id("select2-id_template_or_inspection-container"));

dropdownBtn.click();

以下是我尝试点击下拉列表中的值的代码段:

WebElement dropdownItemBtn = webDriver
      .findElement(By.id("select2-id_template_or_inspection-result-hlwt-tmpl-2583"));
dropdownItemBtn.click();

但是,每次重新加载页面时,下拉列表中的值的ID都会更改。

我很感激帮助!

1 个答案:

答案 0 :(得分:0)

您可以尝试这种方法:

  1. 这就是您所做的,点击跨度以显示其下拉项目

    //Choose a Template from Dropdown
    
    WebElement dropdownBtn = webDriver.findElement(By.id("select2-id_template_or_inspection-container"));
    dropdownBtn.click();
    
  2. 由于每次重新加载页面时都会更改下拉列表中值的ID,因此您可以使用dropdownBtn查找其子项目作为下拉项目,然后单击您想要的下拉列表:

    List<WebElement> dropdownItems = dropdownBtn.findElements(By.tagName("tagNameOfDropdownItems"));
    dropdownItems.get(0).click(); // click on first Dropdown, for example
    
  3. 由于ID是动态更改的,因此我们尝试按tagName查找元素。希望它有所帮助。