从动态下拉列表中选择一个元素

时间:2017-09-11 12:26:26

标签: java selenium selenium-webdriver drop-down-menu

我的选择代码如下:

Select entitySelector = new Select(entitySettingsPage.entitySelector);
entitySelector.selectByVisibleText(entityName);

但是现在开发人员将选择更改为按钮,因为他必须实施更改。这就是它现在的样子:

<button _ngcontent-c8="" aria-expanded="true" aria-haspopup="true" class="btn btn-default dropdown-toggle" data-toggle="dropdown" type="button" id="entity_settings_glossary_picker_button">
Choose an entity
<span _ngcontent-c8="" class="caret" id="entity_settings_glossary_picker_caret"></span>

我该如何解决这个变化?我还想提一下,下拉列表中的元素包含如下所示的ID:entity_settings_glossary_picker_option_1

如果它最后是一个字符串而不是数字,那么编写一个函数来识别我的元素会很容易。我怎么知道我创建的元素的数量是多少? (我总是为我的测试创建一个新实体。)

1 个答案:

答案 0 :(得分:1)

使用以下代码:

WebElement dropdown = driver.findElement(By.id("entity_settings_glossary_picker_button"));
dropdown.click(); // assuming you have to click the "dropdown" to open it
List<WebElement> options = dropdown.findElements(By.tagName("li"));
for (WebElement option : options)
{
    if (option.getText().equals(searchText))
    {
        option.click(); // click the desired option
        break;
    }
}