2013-05-13 99 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); 
相關問題