14

Selenium WebDriver を使用して、開発中の Google Chrome 拡張機能をテストしています。ChromeDriver起動する Chrome のインスタンスに拡張機能を追加するようにカスタマイズできることに気付きました。これは、クラスのAddExtensionおよびAddExtensionsメソッドを使用して実現できます。ChromeOptions

これらのメソッドのドキュメントには、拡張機能を crx ファイルとして提供する必要があることが示されています。私は拡張機能を開発しているので、crx ファイルはありません。アンパックされた拡張機能をロードできるようにしたいのですが、これを行う方法が見つかりませんでした。

拡張ファイルをzipファイルに入れてAddExtensionメソッドに指定してみましたが、これはcrxファイルではないため例外が発生しました。アンパックされたファイルを含むディレクトリも渡そうとしましたが、これによりFileNotFoundException.

これどうやってするの?

4

7 に答える 7

17

AddArgumentメソッドを使用して情報を直接Chromeに渡すことで、これを実現できました。C# では次のようになります。

options = new ChromeOptions();
options.AddArgument("--load-extension=" + unpackedExtensionPath);
于 2013-09-25T00:58:42.530 に答える
3

パックされた拡張機能 (.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);

ソース

于 2016-11-15T10:34:31.647 に答える
2

遅いかもしれませんが、将来のユーザーのために:

https://sites.google.com/a/chromium.org/chromedriver/extensions

于 2014-08-12T00:32:28.280 に答える
-1

Selenium のドキュメントには、パックされた (アンパックされていない) 拡張機能の次のような例があります。

capabilities.setCapability("platform", "Windows 8" );
capabilities.setCapability("version", "10");
capabilities.setCapability("name", testname);
capabilities.setCapability("screen-resolution", "1280x1024");
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
if (isLocal) driver = new ChromeDriver(capabilities);
于 2014-01-20T22:59:09.940 に答える