以前运行的脚本之一当前正在失败,我无法对其进行调试。
硒在下面的行上抛出NoSuchElementException
:
SelectPrimeraCompetencia.SelectByText(valorCompetencia, true);
valorCompetencia
的值为APR
,因此该行变为:
SelectPrimeraCompetencia.SelectByText(APR, true);
SelectPrimeraCompetencia
代表SelectElement
,具有以下代码:
<select class="w100x100" data-notrack="true" data-bind="
options: $root.sistemasCalificacionValor
,optionsText:'clave'
,value: sistemaCalificacionValorSeleccionado
,optionsCaption: ''
,enable: !$root.soloLectura()
,css: { 'disabled' : $root.soloLectura }
">
<option value=""></option>
<option value="">SUS</option>
<option value="">APR</option>
</select>
如您所见,第三个选项的文本为APR
如果我在运行时检查SelectPrimeraCompetencia
,我们可以看到以下选项:
确认索引2文本处的选项为APR
但是仍然出现异常:
感谢您的帮助。
致谢。
答案 0 :(得分:0)
我看到“已启用”和“已禁用”的内联属性。我对代码不熟悉,所以我最好的猜测是webdriver认为该元素无法进行交互。您可以尝试以其他方式选择元素来证明或否定我的猜测。
https://stackoverflow.com/a/18662992/2092742
您需要使用
JavaScriptExecutor
来完成此任务,WebDriver
无法单击已禁用或不可见的元素。因此,尝试类似JavascriptExecutor js = (JavascriptExecutor) webDriver; js.executeScript("document.querySelector(\"button[id=yourButton]\").click()");
答案 1 :(得分:0)
如何遍历select元素的选项并按索引选择选项。
这可能看起来像这样:
apply