【问题标题】:Selenium - Edge - How to start a webdriver session with work profile?Selenium - Edge - 如何使用工作配置文件启动 webdriver 会话?
【发布时间】:2020-03-16 09:06:54
【问题描述】:

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

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

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

硒版本=4.0.0a3

【问题讨论】:

  • 描述您的 SSO 身份验证过程。您是否使用证书或密码从新浏览器登录?
  • 不完全确定,但我将docs.microsoft.com/en-us/microsoft-edge/… 解释为您需要web driver.EdgeOptions(false) 才能正确初始化Chromium 版本的edge。
  • 感谢@MatthiasWinkelmann。我现在也试过了。但是,边缘驱动程序未使用选项中的配置进行配置
  • 基本上,SSO 身份验证使用在授权标头中传递的不记名令牌。 @pcalkins
  • options = webdriver.EdgeOptions(is_legacy=False) options.add_argument("user-data-dir=C:\\Users\\Ajmal.Moideen\\AppData\\Local\\Microsoft\\Edge\\User Data") options.add_argument("--start-maximized") driver = webdriver.Edge(options=options) 我尝试添加一个 start-maximized 参数来检查驱动程序是否接受选项列表。浏览器未最大化。

标签: selenium testing selenium-webdriver browser-automation selenium-edgedriver


【解决方案1】:

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

来自 pip 的 Selenium 3.141.0 似乎不支持新的基于 Chromium 的 Edge Webdriver,但正如 Matthias 对您的问题的评论所述,Microsoft 在其 msedge-selenium-tools package (better documentation here) 中提供了它。

首先,获取 Chromium Edge 网络驱动程序 here - 获取与您的 Edge 版本匹配的版本(转到 Edge 中的 chrome:version 以查看您正在运行的版本)。把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 附加到末尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 2021-05-15
    • 2018-09-23
    • 1970-01-01
    相关资源
    最近更新 更多