我想出了一种方法来做到这一点,但还没有决定具体的实现方式。
在 Javascript 中,您可以覆盖任何函数,这意味着您可以覆盖confirm
这意味着您可以运行以下代码来禁用任何弹出窗口。
def disable_popups
# don't return anything for alert
browser.execute_script("window.alert = function() {}")
# return some string for prompt to simulate user entering it
browser.execute_script("window.prompt = function() {return 'my name'}")
# return null for prompt to simulate clicking Cancel
browser.execute_script("window.prompt = function() {return null}")
# return true for confirm to simulate clicking OK
browser.execute_script("window.confirm = function() {return true}")
# return false for confirm to simulate clicking Cancel
browser.execute_script("window.confirm = function() {return false}")
end
如果你把它放在initalize_page
a 的函数中,page-object
那么对话框会被自动删除。
def initialize_page
disable_popups
end
或者您可以在触发弹出之前立即执行此操作
def delete
disable_popups
delete_link # => clicks the link
end
参考: