Selenium 的边缘自动化 - 不断需要凭证

Edge automation with Selenium - Credential required constantly

我想打开例如Google 使用 Selenium 的 Edge 页面和 Python 公司网络内部。

from selenium import webdriver
browser = webdriver.Edge(r"C:/_path_to_driver_/msedgedriver.exe")
browser.get("https://www.google.com")

Edge 打开此站点并要求我插入邮件。

输入邮件后,它会将我重定向到此页面:

我必须始终手动单击“确定”。 Selenium 是无法点击那个 OK 的。 知道如何执行点击吗?或者有什么方法可以存储我的邮件地址或证书而不总是被要求吗?此问题仅发生在由 selenium 控制的 Edge 上。默认 Edge 会记住所有设置。

如果我们不带任何参数地使用 selenium webdriver 来自动化 Edge,它每次都会创建一个新的配置文件,而不是使用现有的用户数据配置文件。这就是它每次都要求提供凭据的原因。

作为解决方法,您可以使用 user-data-dirprofile-directory 来使用特定的配置文件来启动使用 Selenium WebDriver 的 Edge。您可以使用存储凭据的配置文件,以便在您自动化 Edge 时它不会要求提供凭据。我认为您的情况是默认的 Edge 配置文件。

您需要使用命令pip install msedge-selenium-tools selenium==3.141安装 MS Edge Selenium 工具,然后参考下面的示例代码:

from msedge.selenium_tools import Edge, EdgeOptions

edge_options = EdgeOptions()
edge_options.use_chromium = True

#Here you set the path of the profile ending with User Data not the profile folder
edge_options.add_argument("user-data-dir=C:\Users\username\AppData\Local\Microsoft\Edge\User Data"); 
#Here you specify the actual profile folder
edge_options.add_argument("profile-directory=Profile 2");

driver = Edge(options = edge_options, executable_path = r"C:\_path_to_driver_\msedgedriver.exe")
driver.get('https://www.google.com')

注意:将代码中的路径更改为您自己的。

如果您不知道具体配置文件的路径,您可以检查edge://version/,如下所示: