2013-05-13 13 views
7

ここには特有の問題があります。 chromeDriverでchromeBrowserを開くと、以前にインストールされた拡張機能が見つからなくなります。また、拡張機能フォルダ(AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions)からアプリケーション拡張機能が削除されています。クロムブラウザのインス​​タンスがSelenium chromDriverで開かれているときにクロムブラウザに拡張機能がインストールされていません

私はクロームブラウザを手動で開くと、拡張機能がブラウザに表示され、拡張フォルダ(AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions)のappsフォルダも表示されません。

以下は、クロムドライバ&のバージョンです。 クロムドライバのバージョン:26.0.1383.0 chromebrowser:26.0.1410.64

これを助けてください。

+0

誰でもこれを助けるためにさらに詳しい情報が必要ですか? – navger

答えて

0

ChromeOptionsオプション=新しいChromeOptions(); options.AddAdditionalCapability( "excludeSwitches"、新しいオブジェクト[] {"disable-default-apps"});
IWebDriver drv =新しいChromeDriver(オプション);

webdriverから入手可能.net bindings 2.40以降。

+0

更新された構文でさえ - それは私のために働いていません。 'options.AddExcludedArgument(" disable-default-apps ")' –

2

テスト中に拡張子を使用できるようにするには、この拡張子を定義するプロファイルで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); 

を詳細情報は、あなたが使用したい各拡張機能をインストールする必要がhere

+0

こんにちは。 "--user-data = {profile path}"でchromeriverを開こうとしましたが、それでも動作しません。 – navger

+0

何が問題なのですか?エラーメッセージはありますか?あなたはここで見ましたか:http://www.chromium.org/user-experience/user-data-directory – luksch

6

を見つけることができます。 Selenium2 C#APIでは、このようになります。

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

拡張子はブラウザにあります。 javaのリファレンスはhereです。 Chrome拡張機能の.crxファイルを取得する方法については、this questionを参照してください。

+0

これはCRXファイルである必要はなく、zipファイルも受け入れられます。 APIは、「新しいユーザープロファイルを作成し、拡張モジュールを展開し、展開した拡張モジュールを読み込む」として実装されています。それにもかかわらず+1です。なぜなら、この回答は他の回答よりも正しいからです。 –

+0

@RobW load CRXによりマニフェストファイルのエラーが表示されません。また、私はどのように拡張子のZIPパッケージを取得するのですか? – MonsterMMORPG

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- key = C:\ myext.pem "となります。より自動化された他の方法については、拡張ドキュメントを参照してください。パックされた拡張機能を解凍するには、ファイルを解凍するだけです(zipユーティリティが認識できるように、.crxから.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); 
関連する問題