【问题标题】:Can't trigger event onclick on radio button无法在单选按钮上触发事件 onclick
【发布时间】: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


【解决方案1】:

如果我没记错的话,你必须定义你的 setReadOnly(this) 函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多