Selenium Select - 通过部分文本选择下拉选项

类 Selenium Select 有 3 种不同的选项选择方法:

The class Selenium Select has 3 methods of different option selection:

  1. 选择索引
  2. 按值选择
  3. selectByVisibleText

现在,我有一种情况,我想通过一些文本选择一个选项,该文本部分出现在选项可见文本之一中(不想让自己暴露于整个文本中的更改).

Now, I have a situation where I want to select an option by some text that partially appear in one of the options visible text (don't want to expose myself to changes in the WHOLE text).

例如:

<option value="0" label="not-intresting">VERY-LONG-TEXT-THAT-I-NEED-TO-SELECT-DOLLAR</option>

我只想通过提供DOLLAR"来选择此选项,例如:

And i want to select this option only by providing the "DOLLAR", something like:

select.selectByPartOfVisibleText("DOLLAR") 

您将如何有效地实施它?

How would you implement it effectively?

推荐答案

你可以试试这样的逻辑,希望对你有帮助

You can try a logic like this hope this helps

List <WebElements> optionsInnerText= driver.findElements(By.tagName("option"));
for(WebElement text: optionsInnerText){
    String textContent = text.getAttribute("textContent");
    if(textContent.toLowerCase.contains(expectedText.toLowerCase))
           select.selectByPartOfVisibleText(expectedText);
    }
}

相关文章