如何在 Selenium 中自动接受 Chrome 的“始终在关联的应用程序中打开这些类型的链接”对话框

Jos*_*ira 5 c# selenium google-chrome selenium-webdriver

我正在使用 Selenium 和 C# 自动化测试,我需要从浏览器打开一个外部应用程序。问题是,我总是收到此通知并阻止测试执行。

有谁知道如何处理这个问题?

通知截图

Sco*_*ley 2

Chrome 将接受协议处理程序的设置存储在用户配置文件中。从 Selenium 运行 Chrome 时,Chrome 默认情况下似乎不使用标准 Chrome 用户配置文件,而是使用一些未保留的默认设置。

要解决此问题,您可以从命令行手动启动 Chrome 并手动指定新的--user-data-dir=c:\foo\bar配置文件位置。(将其指向一个新的/空目录,Chrome 将为您填充它。)

使用这个手动启动的浏览器,导航到您需要交互的页面,激活链接,单击“始终打开”复选框,然后运行该程序一次。

接下来,关闭 Chrome 并保存整个新用户配置文件目录的副本。当您运行 Selenium 测试时,请确保始终向 Chrome 传递相同的命令行选项,将其指向该用户配置文件。这些设置现已保留,因此将来无需用户干预即可打开链接。(这个问题可能有助于向 Chrome 提供正确的命令行参数。)

对于可重复的测试,您可能需要保存此配置文件的静态副本,并在启动 Selenium 时重新部署它。