Selenium WebDriver:是否可以测试将代码注入当前页面的 WebExtension?
Selenium WebDriver: is it possible to test WebExtension that inject code to the current page?
我找到了articles about opening browser extension as a page - but my extension inject JS to the current page - and extension can not inject code to chrome*
pages. My only choice is SikuliX?我还可以使用 SikuliX 测试按钮的 badge。我认为使用 SikuliX 我可以模拟真实的用户行为 - 这种关于 UI 交互的测试对我来说看起来更可靠。也很高兴测试 CSS 正确性。
我尝试为我的扩展程序设置一个热键:
但是
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 'I')
(Python) 或 driver.findElement(By.tagName("body")).sendKeys(Keys.CONTROL + "I")
(Java)
什么都不做,但我可以按 Ctrl+I 并且我看到弹出窗口-UI 打开了。
更新:我尝试使用 pyautogui 进行鼠标点击 - 但即使打开扩展弹出窗口 UI driver.window_handles
也不包含它 :(
您可以将 webdriver 配置为在启动时将您的扩展加载到浏览器中。加载扩展后,它可以注入所需的代码,我假设这些代码对 html 进行了一些更改,例如添加/删除一些 html 元素或应用一些样式,然后可以使用 Selenium 对其进行测试。您还可以使用 selenium 执行 javascript。
Sikuli 框架基于图像识别,然后使用鼠标和键盘模拟用户在其上的交互。在这些情况下,您的测试用例可能会中断:
- 分辨率的变化甚至可能导致布局变化
- 更改应用程序的主题导致 ui-elements
的颜色发生变化
- 需要对焦等
目前,我使用 Selenium 网络驱动程序 pyautogui (for interactions with extension) and opencv2 (for computer vision), see more at https://www.pyimagesearch.com/2014/09/15/python-compare-two-images/
通过比较预期和实际 屏幕截图 来测试我的扩展
我找到了articles about opening browser extension as a page - but my extension inject JS to the current page - and extension can not inject code to chrome*
pages. My only choice is SikuliX?我还可以使用 SikuliX 测试按钮的 badge。我认为使用 SikuliX 我可以模拟真实的用户行为 - 这种关于 UI 交互的测试对我来说看起来更可靠。也很高兴测试 CSS 正确性。
我尝试为我的扩展程序设置一个热键:
但是
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 'I')
(Python) 或 driver.findElement(By.tagName("body")).sendKeys(Keys.CONTROL + "I")
(Java)
什么都不做,但我可以按 Ctrl+I 并且我看到弹出窗口-UI 打开了。
更新:我尝试使用 pyautogui 进行鼠标点击 - 但即使打开扩展弹出窗口 UI driver.window_handles
也不包含它 :(
您可以将 webdriver 配置为在启动时将您的扩展加载到浏览器中。加载扩展后,它可以注入所需的代码,我假设这些代码对 html 进行了一些更改,例如添加/删除一些 html 元素或应用一些样式,然后可以使用 Selenium 对其进行测试。您还可以使用 selenium 执行 javascript。
Sikuli 框架基于图像识别,然后使用鼠标和键盘模拟用户在其上的交互。在这些情况下,您的测试用例可能会中断:
- 分辨率的变化甚至可能导致布局变化
- 更改应用程序的主题导致 ui-elements 的颜色发生变化
- 需要对焦等
目前,我使用 Selenium 网络驱动程序 pyautogui (for interactions with extension) and opencv2 (for computer vision), see more at https://www.pyimagesearch.com/2014/09/15/python-compare-two-images/
通过比较预期和实际 屏幕截图 来测试我的扩展