我有一个按钮,其代码如下:
<input type="button" onclick="someFunction();" value="doSomething">
我试图点击Selenium2中的这个按钮。我设法获取元素,但click()函数在Chrome中不起作用。
我尝试直接在JavaScript上执行此操作,但它仍无法在Chrome中使用。
如果你直接点击按钮就可以了,它也可以在Firefox中使用。
任何人都知道如何解决这个问题?
编辑:我忘记了示例中的括号。它们存在于“真实”代码中。
Edit2:用于模拟点击的Selenium 2代码是:
driver.findElement(By.tagName("input")).click();
在有人要求之前,页面中没有其他tagName“输入”。
答案 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();
即使它“有时”仍然失败。我仍然不知道为什么。