我正在使用以下代码使用webdriver(selenium 2)启动chrome
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", "BlackBerry PlayBook");
Map<String, Object> chromeOptions = new HashMap<String, Object>();
chromeOptions.put("mobileEmulation", mobileEmulation);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
driver = new ChromeDriver(capabilities);
如何在保留上述选项的同时加载Chrome扩展程序?
答案 0 :(得分:0)
终于明白了!
每the ChromeDriver capabilites page,您需要将.crx文件转换为base-64编码的字符串。所以最终答案看起来像这样:
ArrayList<String> ext = new ArrayList<>();
extensionLocation = extensionDir + sep + extensionName + ".crx";
extension = new File(extensionLocation);
if (extension.exists() && !extension.isDirectory()) {
ext.add(Data.base64Encoder(extensionLocation));
}
chromeOptions.put("extensions", ext);
Data.base64encoder()
是我的自定义编码方法。有很多关于如何根据您运行的Java版本执行此操作的示例。基本上发送它的位置,让它在二进制文件中读取,并返回一个字符串。
答案 1 :(得分:-1)
使用以下代码: -
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);
希望它会对你有所帮助:)。