我在尝试找到下拉框时遇到了问题。我让它使用绝对路径,但没有使用元素的实际xpath或id。这是非常令人沮丧的,只是无法弄明白。
我安装了Selenium IDE以查看它是否可以在那里工作,selenium IDE会选择下拉框。我将此测试导出到JAVA / JUNIT,并将我需要的命令复制并粘贴到现有测试中。在Selenium id中运行的命令是:
Command: select
Target: id=z_be
Value: label=All conditions must be met
我将它导出到java:
new Select(driver.findElement(By.id("z_be"))).selectByVisibleText("All conditions must be met");
但是我收到了错误:
UnexpectedTagNameException: Element should have been "select" but was "div"
这个问题让我发疯,如果有人能指出我正确的方向并向我展示我的方式错误,那就会喜欢它。 html是:
<select id="z_be" class="vui-input d2l-select" name="z_be" style="background-color: rgb(255, 255, 255);">
<option value="1">All conditions must be met</option>
<option value="2" selected="selected">Any condition must be met</option>
</select>
答案 0 :(得分:0)
我终于有了这个工作。我尝试了以下但是它没有用,我不知道为什么它成功地在firebug css中识别它:
driver.findElement(By.cssSelector("select[id*='z_be'] option[value='1']")).click();
但后来我尝试了这个并且确实有效:
driver.findElement(By.cssSelector("option[value='2']")).click();