2013-05-13 160 views
7

我在这里有一个奇怪的问题。 当我通过chromeDriver打开chromeBrowser时,以前安装的扩展名缺失。此外,应用程序扩展名正在从扩展文件夹(AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions)中删除。当chrome浏览器实例用Selenium chromDriver打开时,chrome浏览器上安装的扩展失踪

现在,当我手动打开Chrome浏览器时,扩展名会出现在浏览器上,同时也显示扩展文件夹中的应用程序文件夹(AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions)。

以下是chromedriver &浏览器的版本。 chromedriver版本:26.0.1383.0 chromebrowser:26.0.1410.64

请帮忙。

+0

有没有人需要更多的信息来帮助这个......? – navger 2013-05-14 05:27:30

回答

0

ChromeOptions选项=新ChromeOptions(); options.AddAdditionalCapability(“excludeSwitches”,new object [] {“disable-default-apps”});
IWebDriver drv = new ChromeDriver(options);

可从webdriver .net绑定2.40起。

+0

即使更新语法 - 它不适合我。 'options.AddExcludedArgument(“禁用 - 默认应用程序”)' – 2017-05-25 20:38:38

2

如果您想在测试过程中使用扩展名,您需要使用定义此扩展名的配置文件启动chrome,或将扩展名作为期望的属性赋予webdriver。通常,当你通过webdriver启动chrome时,chrome每次都以新的配置文件开始。

所以如果你想加载测试镀铬的扩展,这样做:

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
capabilities.setCapability("chrome.switches", 
    Arrays.asList("--load-extension=/path/to/extension/directory")); 
WebDriver driver = new ChromeDriver(capabilities); 

有关此事的更多信息,可以发现here

+0

hi luksch .. !! 我试着用“--user-data = {profile path}”打开chromedriver,但那也不管用。 – navger 2013-05-14 22:18:07

+0

什么不工作?有没有错误信息?你看这里:http://www.chromium.org/user-experience/user-data-directory – luksch 2013-05-15 09:52:58

6

您必须安装要使用每个扩展。在Selenium2 C#API,它看起来像这样

var options = new ChromeOptions(); 
options.AddExtension(Path.GetFullPath("local/path/to/extension.crx")); 
var driver = new ChromeDriver(options); 

和扩展将在浏览器中。 Java的参考可以找到here。请参阅this question了解如何从Chrome商店获取扩展程序的.crx文件。

+0

它不需要是一个CRX文件,也可以接受zip文件。该API实现为“创建新的用户配置文件,解压缩扩展并加载解压后的扩展”。尽管如此,+1,因为这个答案比另一个更正确。 – 2013-09-24 16:40:44

+0

@RobW加载CRX给我缺少清单文件错误。另外我如何获得扩展的zip包? – MonsterMMORPG 2018-02-26 08:11:09

4

这个答案可以在这里找到https://sites.google.com/a/chromium.org/chromedriver/extensions。 Chrome扩展程序可以打包也可以不打包。打包的扩展名是带有.crx扩展名的单个文件。解包的扩展名是一个包含扩展名的目录,包括一个manifest.json文件。要打包解压后的扩展名,请使用chrome:// extensions中的Pack按钮或使用Chrome:“chrome.exe --pack-extension = C:\ path \ to \ unpacked \ extension --pack-extension-键= C:\ myext.pem”。查看扩展文档以获取更自动化的其他方法。要打包打包的扩展,只需解压该文件(您可能需要将该文件从.crx重命名为.zip以供zip实用程序识别)。经由ChromeDriver 安装扩展

盒装(.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); 
相关问题