首页 > 解决方案 > Selenium - Edge - 如何使用工作配置文件启动 webdriver 会话?

问题描述

我的应用程序没有登录页面来进行身份验证。它使用我的组织电子邮件 ID (SSO) 来验证我对应用程序的访问。我正在使用 Microsoft Edge 版本 80.0.361.66(官方版本)(64 位)。

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

硒版本-硒== 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() 

硒版本= 4.0.0a3

标签: seleniumtestingselenium-webdriverbrowser-automationselenium-edgedriver

解决方案


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

来自 pip 的 Selenium 3.141.0 似乎不支持新的基于 Chromium 的 Edge Webdriver,但正如 Matthias 对您的问题的评论所提到的,微软在他们的msedge-selenium-tools中提供了它(更好的文档在这里)。

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

安装 pip 包:

pip install msedge-selenium-tools selenium==3.141

在您的代码中,导入msedge-selenium-toolsWebdriver 和 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)

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

PS:即使chrome:version会显示带有尾随的 Profile 路径\Default,也不要在--user-data-dir上面的参数中包含它,因为驱动程序似乎附加\Default到末尾。


推荐阅读