selenium - 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
解决方案
这是我如何让它工作的——我正在使用 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: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)
瞧,这应该可以解决问题。
PS:即使chrome:version
会显示带有尾随的 Profile 路径\Default
,也不要在--user-data-dir
上面的参数中包含它,因为驱动程序似乎附加\Default
到末尾。
推荐阅读
- symfony - Symfony 部署:composer install --no-dev 错误代码 255
- solr - 如何忽略 Solr 请求参数 API 中的缺失字段?
- sql - 您如何根据当前年份有条件地更新表格?(甲骨文 SQL)
- python-3.x - 使用 Openpyxl 在一系列单元格中替换值
- python - 是否有 urllib.parse.quote 的幂等版本?
- javascript - 内容更改时 Draft.js / react-draft-wysiwyg DOM 更新缓慢
- arrays - 如何将条件数据存储在数组的范围内并将其写入工作表的新列
- c++ - 如何将多个结构加载到单个 UBO 中?
- sql - 使用 SQL 有没有办法比较一个节点是否在一组节点的父层次结构中?
- bash - 如何从提示符连续循环命令