我使用下面的代码使用 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 扩展程序?
终于想通了!
Per ChromeDriver 功能页面,您需要将 .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);
Where Data.base64encoder()
是我的自定义编码方法。有很多示例说明如何根据您运行的 Java 版本执行此操作。基本上向其发送位置,读取二进制文件,然后返回一个字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)