Selenium Grid:在会话中安装chrome扩展

时间:2017-06-08 16:38:56

标签: python selenium google-chrome-extension selenium-grid

我需要在Chrome浏览器的Selenium Grid测试中使用Chrome Store中的一个Chrome扩展程序,但我遇到了一些麻烦:(

  1. 我尝试在浏览器(https://chrome.google.com/webstore/detail/..。)中转到扩展程序网址,然后按“安装”键,但我无法在弹出式浏览器窗口中确认安装
  2. 我尝试下载crx扩展文件,但后来我在浏览器中打开它看到确认窗口并且不明白如何确认安装
  3. 我尝试使用此方法 - https://developer.chrome.com/extensions/external_extensions添加JSON文件并运行浏览器 - 不能正常工作,但我在Mac上尝试,而不是Linux
  4. webdriver.remote只能使用FireFox选项(seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html)
  5. 如果我使用Selenium Grid我无法更改Chrome浏览器启动设置,则无法添加任何键:(

    也许你知道在Selenium Grid浏览器会话上安装扩展的另一种方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用ChromeOptions

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);

或者,您可以将选项添加到已存在的DesiredCapabilities对象。

// Add ChromeDriver-specific capabilities through ChromeOptions.
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);

您还可以使用远程网络驱动程序:

DesiredCapabilities capability = DesiredCapabilities.chrome();
// above code goes here...
WebDriver driver = new RemoteWebDriver(new URL(hubUrl), capability);