我在chrome浏览器上运行自动(python)selenium测试,有时当重新加载页面时,screeen上会出现一个弹出窗口:
是否可以以这种方式配置chrome selenium浏览器,此弹出窗口不会出现?如果是这样,怎么办?或者还有其他方法来压制这个弹出窗口吗?还是接受它?
这个弹出窗口的文本为Reload网站?您所做的更改可能无法保存,是onbeforeunload
的WindowEventHandlers属性的实现
onbeforeunload mixin的WindowEventHandlers属性是用于处理EventHandler事件的beforeunload。当一个窗口即将unload其资源时,这些事件将触发。此时,文档仍然可见,事件仍可取消。
有不同的策略可用于处理此弹出窗口。
--disable-popup-blocking
:
from selenium import webdriver
options.addArguments("--disable-popup-blocking");
driver=webdriver.Chrome(chrome_options=options, executable_path=/path/to/chromedriver')
dom.disable_beforeunload
:
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() {};")
$I->executeJS( "window.onbeforeunload = null" );
我知道这不能回答问题的抑制部分,但是......
尝试使用这段代码来接受弹出窗口:
driver.SwitchTo().Alert().Accept();