Selenium 启动 chrome 并启用扩展
Selenium start chrome and enable extension
我们有正在测试的扩展程序,当我 运行 使用 selenium 的代码时,它会打开带有扩展程序的浏览器,现在我需要通过向右滑动来启用它。
我以为我可以使用 Inspect(xpath、elemts、id 等)来做到这一点,但正如我所看到的,当我右键单击它时,我没有从扩展按钮中获得 Inspect,并且从之后也有延期。
但是在扩展中我有一个Slide可以向右移动来启动它,在Slide上我可以导出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)
Selenium 无法定位扩展菜单,您可以使用 pyautogui 模拟点击以使其正常工作。
其中有很多“视情况而定”。
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"
...
将那个 href 放入您的 selenium 导航中,您应该有一个可以与之交互的页面。
更新 chrome 扩展的版本不会更新该标识符。我已经完成了 chrome 扩展的开发,但我从未见过我的扩展 - 不知道更新它实际需要什么。
我们有正在测试的扩展程序,当我 运行 使用 selenium 的代码时,它会打开带有扩展程序的浏览器,现在我需要通过向右滑动来启用它。
我以为我可以使用 Inspect(xpath、elemts、id 等)来做到这一点,但正如我所看到的,当我右键单击它时,我没有从扩展按钮中获得 Inspect,并且从之后也有延期。
但是在扩展中我有一个Slide可以向右移动来启动它,在Slide上我可以导出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)
Selenium 无法定位扩展菜单,您可以使用 pyautogui 模拟点击以使其正常工作。
其中有很多“视情况而定”。
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"
...
将那个 href 放入您的 selenium 导航中,您应该有一个可以与之交互的页面。
更新 chrome 扩展的版本不会更新该标识符。我已经完成了 chrome 扩展的开发,但我从未见过我的扩展 - 不知道更新它实际需要什么。