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

Java 从动态下拉列表中选择一个图元,java,selenium,selenium-webdriver,drop-down-menu,Java,Selenium,Selenium Webdriver,Drop Down Menu,我的选择代码如下: Select entitySelector = new Select(entitySettingsPage.entitySelector); entitySelector.selectByVisibleText(entityName); 但是现在开发人员更改了selectto按钮,因为他必须实现一个更改。这就是它现在的样子: <button _ngcontent-c8="" aria-expanded="true" aria-haspopup="true" class

我的选择代码如下:

Select entitySelector = new Select(entitySettingsPage.entitySelector);
entitySelector.selectByVisibleText(entityName);
但是现在开发人员更改了selectto按钮,因为他必须实现一个更改。这就是它现在的样子:

<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:实体\设置\词汇表\选择器\选项\ 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;
    }
}
WebElement dropdown=driver.findElement(By.id(“实体设置\术语表\选择器\按钮”);
下拉列表。单击();//假设您必须单击“下拉列表”才能打开它
列表选项=下拉.findElements(按.tagName(“li”));
用于(WebElement选项:选项)
{
if(option.getText().equals(searchText))
{
option.click();//单击所需的选项
打破
}
}

您能为选项元素添加html代码吗?DLL组然后下一个是id=“user\u glossary\u picker\u option\u 2”等等