【问题标题】:Using selenium to handle Chrome Web Store confirmation window in Python在 Python 中使用 selenium 处理 Chrome Web Store 确认窗口
【发布时间】:2021-05-24 13:10:06
【问题描述】:

我正在尝试编写一个安装 OneLogin 扩展的脚本,因为访问该网站需要 OneLogin。

我可以让 selenium 输入用户名和密码来完成登录,但我仍然需要扩展程序才能访问该站点,否则将不会加载凭据。我试图将我当前安装的插件转换为 .crx 文件并让 webdriver 在启动时导入,但它不起作用。浏览器仍然每次都询问我是否要安装 OneLogin 扩展程序。如果您有兴趣,这就是我加载扩展程序的方式。

# load extension
# extension='.../3.4.46_0.crx'
# options = webdriver.ChromeOptions()
# options.add_extension(extension)

所以我会选择另一个选项,即每次创建 webdriver 实例时安装插件。这种方法我遇到了一个问题。例如,当您尝试安装扩展程序(任何扩展程序都可以)时,会弹出一个窗口询问“添加 X?” “它可以……”,然后您可以选择“取消”和“添加扩展名”。

我在如何单击“添加扩展程序”按钮时遇到问题。我无法检查元素,它什么也不做。旧元素将不起作用,因为它位于不同的位置。我尝试了捕获“警报”方法,但失败了。我怀疑如果它是 html 的一部分,这可行,但新的弹出窗口信息未编码在下载页面中,可能在 javascript 后面。

我尝试使用 Robot 框架,但它似乎只适用于 Java 版本。此外,硒似乎不允许您仅单击坐标(x,y)。那我现在该怎么办?

【问题讨论】:

    标签: python selenium webdriver


    【解决方案1】:

    我犯了一个简单的错误,即在加载选项之前启动 webdriver。现在 chrome 会在启动时预加载插件。

    # load extension
    extension='/Users/wang.shuochen/Library/Application Support/Google/Chrome/Default/Extensions/ioalpmibngobedobkmbhgmadaphocjdn/3.4.46_0.crx'
    options = webdriver.ChromeOptions()
    options.add_extension(extension)
    driver = webdriver.Chrome(executable_path="/Users/wang.shuochen/Downloads/chromedriver", options=options)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 2017-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多