Selenium选择选项NoSuchElementException

时间:2014-08-13 21:09:26

标签: java firefox selenium drop-down-menu css-selectors

尝试选择以下表单中的选项时,当我尝试通过NoSuchElementExceptionselect.selectByVisableText(" 85% - Text 1")方法选择该选项时,我的脚本会抛出select.selectByValue("85")。我知道页面上存在select元素,并且正确配置了css选择器,因为我可以使用select.getOptions()转储选项。我可以通过select.selectByIndex(1)选择值。

<select id="confidence" name="confidence">
<option value="100">100% - Text 0</option>
<option selected="" value="85"> 85% - Text 1</option>
<option value="75"> 75% - Text 2</option>
<option value="65"> 65% - Text 3</option>
<option value="50"> 50% - Text 4</option>
<option value="7"> 7% - Text 5</option>
<option value="0"> 0% - Text 6</option>
</select>

在Windows 8.1上使用Java 1.7,Firefox 31.0,Selenium 2.41.0和JUnit 4.11。

1 个答案:

答案 0 :(得分:1)

作为一种解决方法,您可以通过以下方式选择for循环选项:

List[] options = select.getOptions();

for (int i = 0; i <= options.length - 1; i++) {
   if (options[i].getValue().equals(" 85% - Text 1") {
      select.selectByIndex(i);
   }
}

但是如果你想解决问题,你应该检查以下几点:

  • 是您选择的可见/显示
  • 如果没有,为什么不呢(也许它必须被另一个元素调用)

更多信息可以帮助您解决这个问题而不是工作。 (示例代码)

p.s。:我没有对我的测试方法进行测试,但它应该有效......如果没有,请告诉我。