如果我们使用selenium代码
Select sel = new Select(ele);
eles = sel.getOptions();
它将返回下拉选项的所有元素,我们可以获取值。 但是如果某些下拉选项处于隐藏状态,并且我们使用相同的Select.getOptions(),它将返回所有选项,包括隐藏选项。
代码:
<select id="userType" >
<option value="administrator">Administrator</option>
<option value="instructor">Instructor</option>
<option class="studenthide" value="student" style="display: none;">Student</option>
</select>
从about代码中,Administrator和Instructor仅显示在下拉列表中,但Student不会显示在下拉列表中。
那么我们如何只从下拉列表中获取显示的选项?
答案 0 :(得分:0)
我不确定如何使用select class。但是您可以使用xpath下面的所有可见元素进入列表
driver.findElements(by.xpath("//select[@id="userType"]/option[not(contains(@style,"display: none"))]"))
答案 1 :(得分:0)
以下是替代摘录:
List<WebElement> elements = driver.findElements(By.xpath(".//select/option[not(contains(@style,'display: none'))]"));
for(WebElement element : elements){
System.out.println(element.getText());
}