[英]Python - Remote Webdriver with Extension installed in it
我想使用BrowserStack在不同的浏览器版本上测试一个扩展。 这是一个返回具有指定功能的驱动程序的函数。 我有一个Chrome的.crx file
和我本地计算机上的Firefox的.xpi file
。 我想使用带有相应扩展的Remote Webdriver
,使用Python。
def my_webdriver(browser, browser_version, os, os_version):
caps = {}
caps["browser"] = browser
caps["browser_version"] = browser_version
caps["os"] = os
caps["os_version"] = os_version
caps["browserstack.debug"] = "true"
driver = webdriver.Remote(
¦ command_executor = 'blahblahblah',
¦ desired_capabilities = caps)
driver.maximize_window()
return driver
对于Firefox,您需要使用add_extension
创建配置文件并添加扩展名。 然后将配置文件传递给WebDriver构造函数:
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
selenium.webdriver.firefox.firefox_profile import FirefoxProfile
...
fp = FirefoxProfile()
fp.add_extension('/path/to/your/extension.xpi')
driver = RemoteWebDriver(..., browser_profile=fp)
或者,您可以提前创建Firefox配置文件,并手动将扩展添加到其中。 稍后您将其路径作为参数传递给FirefoxProfile()
fp = FirefoxProfile('/path/to/your/profile')
对于Chrome,请使用ChromeOptions
:
from selenium.webdriver.chrome.options import Options as ChromeOptions
chrome_options = ChromeOptions()
chrome_options.add_extension('/path/to/your/extension.crx')
driver = RemoteWebDriver(..., desired_capabilities = caps + chrome_options.to_capabilities())
如果你使用caps.update
EZ对chrome 的回答是caps.update
:
from selenium.webdriver.chrome.options import Options as ChromeOptions
chrome_options = ChromeOptions()
chrome_options.add_extension('/path/to/your/extension.crx')
caps.update(chrome_options.to_capabilities())
driver = RemoteWebDriver(..., desired_capabilities=caps)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.