3

BrowserStackを使用して、さまざまなブラウザー バージョンで 1 つの拡張機能をテストしたいと考えています。これは、指定された機能を持つドライバーを返す関数です。.crx fileローカル マシンに Chrome.xpi file用と Firefox 用があります。Remote WebdriverPythonを使用して、対応する拡張機能をインストールして使用したい。

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
4

2 に答える 2

2

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())
于 2014-02-18T10:14:07.310 に答える
0

以下を使用すると、クロムに対するEZの回答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)
于 2019-05-27T10:13:48.863 に答える