Javascript无法在Chrome中的<input type =“按钮”/>上单击()

时间:2012-08-28 13:34:24

标签: javascript selenium click webdriver

我有一个按钮,其代码如下:

<input type="button" onclick="someFunction();" value="doSomething">

我试图点击Selenium2中的这个按钮。我设法获取元素,但click()函数在Chrome中不起作用。

我尝试直接在JavaScript上执行此操作,但它仍无法在Chrome中使用。

如果你直接点击按钮就可以了,它也可以在Firefox中使用。

任何人都知道如何解决这个问题?

编辑:我忘记了示例中的括号。它们存在于“真实”代码中。

Edit2:用于模拟点击的Selenium 2代码是:

driver.findElement(By.tagName("input")).click();

在有人要求之前,页面中没有其他tagName“输入”。

4 个答案:

答案 0 :(得分:6)

一般来说,使用内联属性来定义事件处理程序是个坏主意。相反,您应该选择使用JavaScript绑定事件处理程序,以便分离您的内容(HTML)和功能(JavaScript)。

然而,问题似乎是你实际上没有调用该函数。将其更改为:

<input type="button" onclick="someFunction();" value="doSomething">

答案 1 :(得分:1)

我认为你必须使用函数名称和函数括号()

像这样 input type =“button” onclick =“someFunction(); ”value =“doSomething”

我希望这会对你有所帮助

答案 2 :(得分:0)

尝试这样,甚至更好地将javascript放在单独的文件中:

<input type="button" value="doSomething" id="someFuncBtn">

<script type="text/javascript">
    $(document).ready(function () {
        $('#someFuncBtn').on('click', function(){
            someFunction();
        });
    });
</script>

答案 3 :(得分:0)

我意识到这是点击的问题,有时候有点奇怪。它的效果更好:

driver.findElements(By.tagName("input")).get(0).click();

即使它“有时”仍然失败。我仍然不知道为什么。