【发布时间】:2017-06-08 21:54:37
【问题描述】:
我构建了一个基于关键字的测试框架,使用 Selenium 3.x,Java。我有一个网络元素:
<input id="radiobutton" name="webserviceBarFlg" onclick="setReadOnly(this)" class="foo-input-radio-margin foo-input-radio" type="radio" value="true" checked="checked">
<input id="radiobutton" name="webserviceBarFlg" onclick="setReadOnly(this)" class="foo-input-radio-margin foo-input-radio" type="radio" value="false" checked="checked">
方法 Javascript 对其他输入的影响。
function setReadOnly(obj) {
var varRadio = $(obj).val();
var input = $(obj).closest("tr").next("tr").find("input");
if(varRadio == "false") {
$(input).attr("readOnly",true);
} else{
$(input).attr("readOnly",false);
}
}
我尝试了 2 个解决方案(在 Internet Explorer 11、Windows 10 Pro 上):
解决方案 1
webElement.click();
解决方案 2
private RemoteWebDriver remoteWebDriver;
//...
JavascriptExecutor executor = (JavascriptExecutor) remoteWebDriver;
executor.executeScript("arguments[0].click();", webElement);
但我仍然无法触发事件 onclick。怎么做?
【问题讨论】:
-
点击后有代码吗?
-
你确定你找到了正确的元素,而不是用相同的定位器找到另一个元素吗?
-
正确的元素,我看到它在我的屏幕上单击,但无法在其他文本输入上调用方法
setReadOnly。我的问题是 Selenium 无法触发事件onclick。 -
如果单击后未触发,则无法使用 selenium 强制 onclick 事件,请改用 javascript 强制 onclick。
-
如何定位元素?
标签: javascript java selenium radio-button