我有一个登录表单提交按钮,如下所示:
<input type="button" name="BUTTON1" value="Login" title="Login" class="Bottone1" onclick="if( gx.evt.jsEvent(this)) {gx.evt.execEvt('EENTER.',this);} else return false;" onfocus="gx.evt.onfocus(this, 26,'',false,'',0)">
在我的 ruby 脚本中使用 watir-webdriver 和 firefox 后端,这段代码工作正常:
browser.button(:name => "BUTTON1").click
不幸的是,如果我切换到 phantomjs 后端使用此代码没有任何反应,屏幕截图显示我被困在同一页面中。
===更新:
看起来按钮已触发,但重定向不起作用。实际上,如果在单击按钮后我手动转到所需的页面,它就会让我进入,因此提交了表单。
我无法解释为什么,但 phantomjs 对我来说也有点问题......同样的问题...我把它煮成 2 种模式:
1:.计时问题,您需要在单击之前添加睡眠,以便为元素/页面加载留出时间(即使是可见/加载检查也会失败)
2:. 由于某种原因单击操作不会触发事件...我不得不添加如下所示的内容来解决方法:
3.times do
element.visible? ? element.click : break
end
最后一种情况,您可以尝试与原始评论中的建议类似的操作:
element.trigger('click')...