【问题标题】:Selenium Grid: install chrome extensions on sessionSelenium Grid:在会话中安装 chrome 扩展
【发布时间】:2017-06-08 16:38:55
【问题描述】:
在 Chrome 浏览器中的 Selenium Grid 测试中,我需要使用 Chrome Store 中的一个 chrome 扩展程序,但我遇到了一些麻烦 :(
- 我尝试在浏览器中转到扩展 URL (https://chrome.google.com/webstore/detail/...) 并按下安装键,但我无法在弹出的浏览器窗口中确认安装
- 我尝试下载 crx 扩展文件,但是我在浏览器中打开它我看到了确认窗口,但不明白如何确认安装
- 我尝试使用这种方法 - https://developer.chrome.com/extensions/external_extensions 添加 JSON 文件并运行浏览器 - 不起作用,但我在 Mac 上尝试,而不是在 Linux 上尝试
- webdriver.remote 只能使用 FireFox 选项 (seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html)
如果我使用 Selenium Grid,我无法更改 Chrome 浏览器启动设置,也无法添加任何键 :(
也许您知道在 Selenium Grid 浏览器会话上安装扩展的另一种方法?
【问题讨论】:
标签:
python
selenium
google-chrome-extension
selenium-grid
【解决方案1】:
您可以使用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);