如何禁用“重新加载网站?你所做的更改可能不会被保存“弹出(python) selenium 测试在 chrome ?

wfypjpf4  于 2023-08-01  发布在  Go
关注(0)|答案(3)|浏览(306)

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


的数据
是否可以配置chrome selenium浏览器,使此弹出窗口不出现?如果是,如何做到这一点?还是有其他方法来抑制此弹出窗口?还是接受它?

v9tzhpje

v9tzhpje1#

此弹出窗口的文本为重新加载站点?您所做的更改可能无法保存WindowEventHandlers的**onbeforeunload**属性的实现

onbeforeunload

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

解决方案

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

*Chrome解决方案:通过 ChromeOptions() 使用--disable-popup-blocking

from selenium import webdriver

options.add_argument("--disable-popup-blocking")
driver=webdriver.Chrome(chrome_options=options, executable_path=/path/to/chromedriver')

字符串

*Firefox解决方案:通过 FirefoxProfile() 使用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.onbeforeunloadfunction() {};,您可以使用以下解决方案:

driver.execute_script("window.onbeforeunload = function() {};")

  • 基于JQuery的解决方案:
$I->executeJS( "window.onbeforeunload = null" );


您可以在Internet Explorer弹出窗口“您确定要离开此页面吗?”下面的“如何处理”中找到相关讨论。通过Selenium

pinkon5k

pinkon5k2#

我知道这并没有回答问题的抑制部分,但是...
尝试以下代码接受弹出窗口:
第一个月

j8ag8udp

j8ag8udp3#

对于java,可以使用以下代码

// Set the path to the ChromeDriver executable
System.setProperty("webdriver.chrome.driver", "path_to_chromedriver");

// Create ChromeOptions instance
ChromeOptions options = new ChromeOptions();

// Disable pop-ups
options.addArguments("--disable-popup-blocking");

// Create WebDriver instance
WebDriver driver = new ChromeDriver(options);

// Rest of your code...

字符串
希望这对你有帮助。谢谢

相关问题