如何禁用Chrome中(python)selenium测试的“重新加载站点?您所做的更改可能无法保存”弹出窗口?
IT技术
javascript
python
selenium
google-chrome
onbeforeunload
2021-03-04 07:13:01
2个回答
这个带有文本的弹出窗口作为重新加载站点?您所做的更改可能无法保存是WindowEventHandlersonbeforeunload
属性的实现
卸载前
WindowEventHandlers mixin的onbeforeunload属性是处理beforeunload事件的EventHandler。当窗口即将卸载其资源时会触发这些事件。此时,文档仍然可见,事件仍然可以取消。
解决方案
有不同的策略可用于处理此弹出窗口。
Chrome解决方案:
--disable-popup-blocking
通过ChromeOptions() 使用:from selenium import webdriver options.add_argument("--disable-popup-blocking") driver=webdriver.Chrome(chrome_options=options, executable_path=/path/to/chromedriver')
Firefox解决方案:
dom.disable_beforeunload
通过FirefoxProfile() 使用:from selenium import webdriver profile = webdriver.FirefoxProfile() profile.set_preference("dom.disable_beforeunload", True) driver = webdriver.Firefox(firefox_profile = profile)
跨浏览器解决方案:作为跨浏览器解决方案,您可以禁用此对话框调用
executeScript()
将window.onbeforeunload设置为function() {};
,您可以使用以下解决方案:driver.execute_script("window.onbeforeunload = function() {};")
基于JQuery的解决方案:
$I->executeJS( "window.onbeforeunload = null" );
您可以在 Internet Explorer 弹出“您确定要离开此页面吗?”下方的如何处理中找到相关讨论。通过selenium
我知道这不能回答问题的抑制部分,但是..
试试这段代码来接受弹出窗口:
driver.SwitchTo().Alert().Accept();