如何在 chrome 中禁用 (python) selenium 测试的 "Reload site? Changes you made may not be saved" 弹出窗口?
How to disable a "Reload site? Changes you made may not be saved" popup for (python) selenium tests in chrome?
我在 chrome 浏览器上进行 运行 自动化 (python) selenium 测试,有时在重新加载页面时屏幕上会出现一个弹出窗口:
是否可以将 chrome selenium 浏览器配置为 不显示此弹出窗口?如果是这样,该怎么做?还是有其他方法可以抑制此弹出窗口?还是接受?
我知道这不能回答问题的抑制部分,但是..
试试这段接受弹出窗口的代码:
driver.SwitchTo().Alert().Accept();
此弹出窗口的文本为 重新加载站点?您所做的更改可能无法保存 是 onbeforeunload
属性 的 WindowEventHandlers
的实现
onbeforeunload
WindowEventHandlersmixin的onbeforeunload属性是处理的EventHandler beforeunload 事件。这些事件在 window 即将 卸载 其资源时触发。此时,文档仍然可见,事件仍然可以取消。
解决方案
有不同的策略可用于处理此 弹出窗口。
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" );
You can find a relevant discussion in
我在 chrome 浏览器上进行 运行 自动化 (python) selenium 测试,有时在重新加载页面时屏幕上会出现一个弹出窗口:
是否可以将 chrome selenium 浏览器配置为 不显示此弹出窗口?如果是这样,该怎么做?还是有其他方法可以抑制此弹出窗口?还是接受?
我知道这不能回答问题的抑制部分,但是..
试试这段接受弹出窗口的代码:
driver.SwitchTo().Alert().Accept();
此弹出窗口的文本为 重新加载站点?您所做的更改可能无法保存 是 onbeforeunload
属性 的 WindowEventHandlers
onbeforeunload
WindowEventHandlersmixin的onbeforeunload属性是处理的EventHandler beforeunload 事件。这些事件在 window 即将 卸载 其资源时触发。此时,文档仍然可见,事件仍然可以取消。
解决方案
有不同的策略可用于处理此 弹出窗口。
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" );
You can find a relevant discussion in