在硒自动化过程中绕过“外部协议请求”弹出窗口

Ela*_*da2 6 java testing selenium webdriver selenium-webdriver

我在Mac和ubunto上运行自动化(使用黄瓜,硒Web驱动程序,junit)

在自动化过程中,我单击具有非http协议的链接

出现“外部协议请求”弹出窗口。

在此处输入图片说明

它阻止了我测试其余网页。

如何轻松绕过它?

我曾经想过可能写一个不做任何事的jar,然后将其注册到此外部协议中,但这无济于事,因为此弹出窗口仍会出现。

也许使用其他浏览器可以帮助您?

还有其他建议吗?

Ame*_*ale 5

我正在将 chromedriver 与 selenium 和 python 一起使用。我遇到了同样的问题,以下代码对我有用-

driver.execute_script("window.confirm = function(msg) { return true; }")

prefs = {"protocol_handler.excluded_schemes":{"afp":True,"data":True,"disk":True,"disks":True,"file":True,"hcp":True,"intent":True, "itms-appss":True, "itms-apps":True,"itms":True,"market":True,"javascript":True,"mailto":True,"ms-help":True,"news":True,"nntp":True,"shell":True,"sip":True,"snews":False,"vbscript":True,"view-source":True,"vnd":{"ms":{"radio":True}}}}    

chrome_options.add_experimental_option("prefs",prefs)
Run Code Online (Sandbox Code Playgroud)

比方说,要抑制协议处理程序弹出开始与“SIP://”链接
只需添加一个额外的条目"sip":True"protocol_handler.excluded_schemes"

  • 在 C# 驱动程序中,您必须使用 `Options.AddUserProfilePreference("protocol_handler.excluded_schemes", new Dictionary<string,bool>{{"ms-excel", false}});` (2认同)

Sta*_*n E 2

您有 2 个可能的选择。

1)正在运行具有预定义配置文件的chrome,您已手动禁用协议处理(通过界面或配置文件)(配置文件设置中的“本地状态”文件,您应该在适当的部分添加“waze”:false,您可以搜索“mailto”即可知道它在哪里)。

2)另一种方法是在所有测试开始之前将设置放入测试的构造函数中(我将编写一个算法,因为它取决于您的框架和语言):

  • 导航到“chrome://settings”
  • 按 css 选择器“#advanced-settings-expander”的链接
  • 按下带有 css 选择器“#privacyContentSettingsButton”的按钮
  • 使用 css 选择器“#handlers-section input[value=block]”按所需选项的标签
  • 通过 css 选择器“#content-settings-overlay-confirm”按完成