如何禁用“重新加载站点?您所做的更改可能无法保存为“Chrome中的(python)selenium测试弹出窗口?

问题描述 投票:1回答:2

我在chrome浏览器上运行自动(python)selenium测试,有时当重新加载页面时,screeen上会出现一个弹出窗口:

enter image description here

是否可以以这种方式配置chrome selenium浏览器,此弹出窗口不会出现?如果是这样,怎么办?或者还有其他方法来压制这个弹出窗口吗?还是接受它?

javascript python selenium google-chrome onbeforeunload
2个回答
1
投票

这个弹出窗口的文本为Reload网站?您所做的更改可能无法保存,是onbeforeunloadWindowEventHandlers属性的实现


onbeforeunload

onbeforeunload mixin的WindowEventHandlers属性是用于处理EventHandler事件的beforeunload。当一个窗口即将unload其资源时,这些事件将触发。此时,文档仍然可见,事件仍可取消。


有不同的策略可用于处理此弹出窗口。

  • Chrome解决方案:通过ChromeOptions()使用--disable-popup-blockingfrom selenium import webdriver options.addArguments("--disable-popup-blocking"); driver=webdriver.Chrome(chrome_options=options, executable_path=/path/to/chromedriver')
  • Firefox解决方案:通过FirefoxProfile()使用dom.disable_beforeunloadfrom 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" );

1
投票

我知道这不能回答问题的抑制部分,但是......

尝试使用这段代码来接受弹出窗口:

driver.SwitchTo().Alert().Accept();

© www.soinside.com 2019 - 2024. All rights reserved.