通过id命令定位元素在Selenium ide中工作,但在Java

时间:2016-11-22 04:33:42

标签: java html selenium webdriver selenium-ide

我在尝试找到下拉框时遇到了问题。我让它使用绝对路径,但没有使用元素的实际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>

1 个答案:

答案 0 :(得分:0)

我终于有了这个工作。我尝试了以下但是它没有用,我不知道为什么它成功地在firebug css中识别它:

driver.findElement(By.cssSelector("select[id*='z_be'] option[value='1']")).click();

但后来我尝试了这个并且确实有效:

driver.findElement(By.cssSelector("option[value='2']")).click();