1

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

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

我正在尝试单击 Selenium2 中的此按钮。我设法获取了元素,但 click() 函数在 Chrome 中不起作用。

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

如果您直接单击按钮,它可以工作,它也可以在 Firefox 中工作。

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

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

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

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

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

4

4 回答 4

6

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

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

<input type="button" onclick="someFunction();" value="doSomething">
于 2012-08-28T13:36:36.047 回答
1

我认为你必须使用带有函数括号()的函数名

像这样输入 type="button" onclick="someFunction(); " value="doSomething"

我希望这能帮到您

于 2012-08-28T13:38:07.970 回答
0

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

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

<script type="text/javascript">
    $(document).ready(function () {
        $('#someFuncBtn').on('click', function(){
            someFunction();
        });
    });
</script>
于 2012-08-28T13:40:26.000 回答
0

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

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

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

于 2012-08-30T09:08:39.263 回答