我已使用click_no_wait
点击按钮,然后使用javascript_dialog.button('OK').click
点击弹出窗口中的“确定”按钮。这在所有情况下都有效,除了一个对我来说。看来click_no_wait
点击太快了。
我的意思是,当我使用click_no_wait
时,页面上的按钮会闪烁(就像点击一样)但弹出窗口没有出现,然后我的Watir应用程序挂起,等待弹出窗口没有弹出。如果我切换到click
然后弹出窗口,但Watir应用程序挂起(正如预期的那样)。
还有其他选择吗?代码如下。 (我无法链接实际网站,它位于密码区域后面)
Ruby / Watir:
browser.button(:name => "dgPermission:_ctl"+num+":_ctl1").click_no_wait
browser.javascript_dialog.button('OK').click
HTML:
<html><body><div><table style="width:100%; height:600px;"><tr>
<td>Group Name</td>
<td><span disabled="disabled"><input id="dgPermission__ctl2_cbAdd" type="checkbox" name="dgPermission:_ctl2:cbAdd" checked="checked" disabled="disabled" /></span></td>
<td><input type="submit" name="dgPermission:_ctl2:_ctl0" value="Edit" /></td>
<td><input type="submit" name="dgPermission:_ctl2:_ctl1" value="Delete" onclick="javascript:if (!confirm('Are you sure you want to remove this permission?')) return false;" language="javascript" /></td>
</tr></table></div></body></html>
(页面可以包含多个组,因此中间部分可以包含该部分的多个部分,每个部分在dgPermission
名称中具有不同的编号ID)
答案 0 :(得分:0)
据我所知,click和click_no_wait之间的唯一区别是发送点击后会发生什么。
可能你可以尝试直接解雇这个事件
browser.button(:name => "dgPermission:_ctl"+num+":_ctl1").fire_event('onclick')
browser.javascript_dialog.button('OK').click