【问题标题】:Selenium start chrome and enable extensionSelenium 启动 chrome 并启用扩展
【发布时间】:2021-12-12 17:20:10
【问题描述】:

我们有正在测试的扩展程序,当我使用 selenium 运行代码时,它会打开带有扩展程序的浏览器,现在我需要向右滑动来启用它。

我认为我可以使用 Inspect(xpath、elemts、id 等)来做到这一点,但正如我所见,当我右键单击扩展按钮时,我没有从扩展按钮中获得 Inspect,并且在之后的扩展中也没有那也是。

但是在扩展中我有一个幻灯片可以向右移动来启动它,在幻灯片上我可以导出检查信息,但是我需要用什么来将它滑动到右侧?

基本上我的代码是这样开始的:

op = Options()
op.add_extension('../extension/extension_21_9_0_0.crx')
driver = webdriver.Chrome(ChromeDriverManager().install(), options=op)
move = ActionChains(driver)
#driver.maximize_window()
time.sleep(2)

driver.get(url)

【问题讨论】:

    标签: python selenium automation slide


    【解决方案1】:

    Selenium 无法定位扩展菜单,您可以使用pyautogui 模拟单击​​以使其工作。

    【讨论】:

    • 所以,是的,我看了几个关于 pyautogui 的视频,它很有帮助。谢谢 唯一的问题是我更喜欢把它放在后台工作,而不是触摸我的鼠标。
    【解决方案2】:

    其中有很多“取决于”。

    Selenium 将难以与扩展弹出窗口进行交互,因为它本质上是在不同的 html 页面中打开扩展提示。

    Chrome 扩展程序 (v2) 使用 background pages 的概念。 Chrome 扩展程序 (v3) 与 service workers 一起使用。您应该弄清楚您正在使用哪个,以便确定最佳解决方案。

    此时,在不知道您的扩展程序的情况下,我会建议几个选项:

    1/ 当你点击滑块时,它会触发一些 JS。查看代码,找出调用的位置,然后触发相同的 JS。

    如果需要,您可以在 devtools 源选项卡上暂停执行,然后再执行跟踪调用链的操作:

    2/ 在普通页面中打开你的扩展页面。

    手动检查您的扩展页面并在 devtools 控制台上输入 document.location 这将为您提供本地扩展页面 chrome 正在运行 - 例如:

    ...
    href: "chrome-extension://ojhcleddagaoaplflbafhpekcciikdop/popup.html"
    origin: "chrome-extension://ojhcleddagaoaplflbafhpekcciikdop"
    pathname: "/popup.html"
    ...
    

    在你的 selenium 导航中加入那个 href,你应该有一个可以与之交互的页面。

    更新 chrome 扩展程序的版本不会更新该标识符。我已经完成了 chrome 扩展的开发,但我从未见过我的更改 - 不知道更新它实际上需要什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      相关资源
      最近更新 更多