Selenium - Edge - 如何使用工作配置文件启动 webdriver 会话?

Selenium - Edge - How to start a webdriver session with work profile?

我的应用程序没有用于验证的登录页面。它使用我的组织电子邮件 ID (SSO) 来验证我对应用程序的访问。我使用的是 Microsoft Edge 80.0.361.66(正式版)(64 位)版本。

driver = webdriver.Edge()
driver.maximize_window()

selenium 版本 - selenium==3.141.0

此边缘会话不使用我的工作资料。它打开一个新会话,因此我的工作配置文件未加载,我对应用程序的访问被拒绝。但是,我确实尝试更新 selenium 的版本以使用 EdgeOptions。但是,那也不起作用。下面是代码:

options = webdriver.EdgeOptions() 
options.add_argument("user-data-dir=C:\Users\Ajmal.Moideen\AppData\Local\Microsoft\Edge\User Data") 
driver = webdriver.Edge(options=options) 
driver.maximize_window() 

selenium 版本=4.0.0a3

这是我如何让它工作的 - 我正在使用 Chromium Edge 85.0.564.51 和 Selenium 3.141.0。

来自 pip 的 Selenium 3.141.0 似乎不支持新的 Chromium-based Edge Webdriver,但微软在他们的 msedge-selenium-tools package (better documentation here) 中提供了它,正如 Matthias 对你的问题的评论所提到的。

首先,获取 Chromium Edge 网络驱动程序 here - 获取与您的 Edge 版本相匹配的版本(转到 chrome:version 在 Edge 中查看您的版本 运行)。把webdriver放在方便的地方,下面需要设置driverpath指向它。

安装 pip 包:

pip install msedge-selenium-tools selenium==3.141

在您的代码中,导入 msedge-selenium-tools Webdriver 和 Options 模块并构建 webdriver,如下所示:

from msedge.selenium_tools import Edge, EdgeOptions

...

options = EdgeOptions()
options.use_chromium = True
options.add_argument("--user-data-dir=C:\Users\YOUR-USERNAME\AppData\Local\Microsoft\Edge\User Data")
options.add_argument("--start-maximized")
driverpath = 'msedgedriver.exe'

driver = Edge(driverpath, options=options)

瞧,这应该可以解决问题。

P.S.: 即使 chrome:version 将显示您的配置文件路径并带有尾随 \Default,请不要将其包含在上面的 --user-data-dir 参数中,因为驱动程序似乎将 \Default 附加到末尾。