我这里有一个特殊的问题。当我通过chromeDriver打开chromeBrowser时,以前安装的扩展丢失了。此外,应用程序扩展被删除从扩展文件夹(AppDataLocalGoogleChromeUser DataDefault extensions)。
现在当我手动打开chrome浏览器时,扩展出现在浏览器上,扩展文件夹中的应用程序文件夹(AppDataLocalGoogle chrome User DataDefault extensions)没有w出现回来。
以下是chromedriver &浏览器。Chromedriver版本:26.0.1383.0chrome浏览器:26.0.1410.64
你必须安装你想要使用的每个扩展。在Selenium2 c# API中,它看起来像这样
var options = new ChromeOptions();
options.AddExtension(Path.GetFullPath("local/path/to/extension.crx"));
var driver = new ChromeDriver(options);
和扩展将在浏览器中。java的参考资料可以在这里找到。
这个答案可以在这里找到https://sites.google.com/a/chromium.org/chromedriver/extensions。Chrome扩展可以打包或拆包。打包扩展是一个扩展名为.crx的文件。未打包的扩展是包含扩展(包括清单)的目录。json文件。
要打包未打包的扩展,请使用chrome://extensions中的pack按钮或使用chrome: "chrome.exe——pack-extension=C:path To unpack extension——pack-extension-key=C:myext.pem"。请参阅扩展文档了解其他更自动化友好的方法。要解压缩已打包的扩展名,只需解压缩文件(您可能需要将文件从.crx重命名为.zip,以便zip实用程序能够识别它)。安装扩展
(包装。crx文件)
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);
打开(目录)
ChromeOptions options = new ChromeOptions();
options.addArguments("load-extension=/path/to/extension");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);
如果你想在测试期间有扩展可用,你需要启动chrome的配置文件,定义这个扩展或给扩展所需的属性到webdriver。通常,当你通过webdriver启动chrome时,chrome每次都会以一个新的配置文件启动。
所以如果你想在测试chrome中加载扩展,这样做:
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches",
Arrays.asList("--load-extension=/path/to/extension/directory"));
WebDriver driver = new ChromeDriver(capabilities);
关于此事的更多信息可以在这里找到
ChromeOptions = new ChromeOptions();选项。AddAdditionalCapability(" excludeswitch ",新对象[]{"disable-default-apps"});
IWebDriver = new ChromeDriver(options);