安装在chrome浏览器上的扩展在使用Selenium chromeDriver打开chrome浏览器实例时丢失



我这里有一个特殊的问题。当我通过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的参考资料可以在这里找到。

如何从chrome store获取扩展名的.crx文件,请参阅此问题。

这个答案可以在这里找到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);

相关内容

最新更新