簡體   English   中英

Python - 安裝了擴展的遠程Webdriver

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM