Capybara:为什么使用find('。class')。单击不起作用,但使用execute_script将起作用

时间:2013-07-10 18:37:14

标签: capybara

我尝试使用find(.class).click单击按钮,就像通常一样,但有时,它不起作用,所以我必须更改为execute_scirpt,它将工作。我想知道为什么会这样,示例代码将是:(这个html是在我点击编辑按钮时创建的)

<input type="submit" class="btn btn-primary f-light f-semibold" value="Save Changes">

我尝试了各种方法,click_on“保存更改”,找到()。点击/ ... 有时候,它会像非脱位一样抛出异常。

fill_in function

发生了同样的情况
<input type="text" class="user_email input-big f-light f-semibold" value="" name="user[email]">

我相信必定会有很多人遇到同样的问题。任何人都可以和我讨论?

此致 连武

1 个答案:

答案 0 :(得分:0)

我曾经遇到过类似的问题,发现它是因为元素被太快点击(事件监听器尚未添加到我点击的按钮)。

出于某种原因,使用执行脚本在单击这样的元素时起作用,但只是在找到按钮后添加睡眠也适用于我的情况。

我最终必须确保在尝试点击任何内容之前页面上的每个元素都已完成加载,一旦我这样做,element.click将在100%的时间内工作