Javascript无法在Chrome中的<input type ="button">上单击()

Sti*_*rik 1 javascript selenium webdriver click

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

<input type="button" onclick="someFunction();" value="doSomething">
Run Code Online (Sandbox Code Playgroud)

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

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

如果您直接单击该按钮,它就可以工作,它也适用于Firefox.

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

编辑:我忘记了我的例子中的括号.它们存在于"真实"代码中.

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

driver.findElement(By.tagName("input")).click();
Run Code Online (Sandbox Code Playgroud)

在有人问之前,页面中没有其他tagName"输入".

Ant*_*ist 6

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

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

<input type="button" onclick="someFunction();" value="doSomething">
Run Code Online (Sandbox Code Playgroud)

  • +1,特别是提醒OP避免内联事件处理程序. (3认同)
  • @ianpgall它们将代码的结构 - HTML - 和行为 - Javascript - 混合在一起,这使得它难以阅读并且难以维护/扩展. (2认同)