Joh*_*nny 6 java selenium webdriver selenium-chromedriver selenium-webdriver
Selenium Select类有 3 种不同的选项选择方法:
现在,我有一种情况,我想通过一些文本来选择一个选项,这些文本部分出现在一个选项可见文本中(不想让自己暴露在整个文本中的更改中)。
例如:
<option value="0" label="not-intresting">VERY-LONG-TEXT-THAT-I-NEED-TO-SELECT-DOLLAR</option>
Run Code Online (Sandbox Code Playgroud)
我只想通过提供“美元”来选择此选项,例如:
select.selectByPartOfVisibleText("DOLLAR")
Run Code Online (Sandbox Code Playgroud)
你将如何有效地实施它?
我的解决方案是使用 xpath 来查找作为选择子项的选项。可以使用任何 xpath 方法来查找选择;在这个例子中,我找到了 id 的选择。
List<WebElement> options = driver.findElements(By.xpath("//select[@id = 'selectId')]/option"));
for (WebElement option : options) {
if (option.getText().contains("DOLLAR")) {
option.click();
break;
}
}
Run Code Online (Sandbox Code Playgroud)
经过更多思考,我意识到可以完全使用 xpath 找到该选项:
driver.findElements(By.xpath("//select[@id = 'selectId')]/option[contains(text(), 'DOLLAR')]")).click();
Run Code Online (Sandbox Code Playgroud)
您可以尝试这样的逻辑希望这会有所帮助
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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27443 次 |
| 最近记录: |