17

FirefoxとChromeの両方のブラウザプラグインコンポーネントを備えたWebアプリを作成しています。私の現在のテストシステムは、SeleniumIDEを介して作成された一連のSeleniumテストを使用しています。

セレンをFirefoxとChrome用のブラウザプラグイン(おそらく他のブラウザも)にインストール、アクティブ化、削除することは可能ですか?

最大の懸念は、ブラウザプラグインのインストール/有効化にはブラウザの再起動が必要なことだと思いますが、それがセレンをオフにするかどうかはわかりません。

プラグインの取得は、ブラウザを検出するphp-scriptへの内部サイトリンクにアクセスすることで簡単に処理できます。

4

2 に答える 2

40

答えははいです。Selenium 2 は、ブラウザー拡張機能の (リモート) インストールをサポートしています。

Chrome および Firefox WebDriver は、リモートでの拡張機能のインストールをサポートしています。Chrome と Firefox のサンプル コードは次のとおりです。

クロム

File file = new File("extension.crx"); // zip files are also accepted
ChromeOptions options = new ChromeOptions();
options.addExtensions(file);

// Option 1: Locally.
WebDriver driver = new ChromeDriver(options);

// Option 2: Remotely
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

ファイアフォックス

File file = new File("extension.xpi");
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.addExtension(file);

// Option 1: Locally
WebDriver driver = new FirefoxDriver(firefoxProfile);

// Option 2: Remotely
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

また、Opera と Safari の拡張機能の自動インストールも実装しており、上流にマージされています。

オペラ

この API は FirefoxDriver に似ています。

File file = new File("extension.oex"); // Must end with ".oex"
OperaProfile operaProfile = new OperaProfile();
operaProfile.addExtension(file);

// Option 1: Locally
WebDriver driver = new OperaDriver(operaProfile);

// Option 2: Remotely
DesiredCapabilities capabilities = DesiredCapabilities.opera();
capabilities.setCapability("opera.profile", operaProfile);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

サファリ

この API は ChromeDriver に似ています。

File file = new File("extension.safariextz");
SafariOptions options = new SafariOptions();
options.addExtensions(file);

// Option 1: Locally.
WebDriver driver = new SafariDriver(options);

// Option 2: Remotely
DesiredCapabilities capabilities = DesiredCapabilities.safari();
capabilities.setCapability(SafariOptions.CAPABILITY, options);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

インターネットエクスプローラ

幸運を。

于 2013-06-14T21:56:32.610 に答える
-3

短い答え: いいえ

ブラウザー拡張機能のインストールは、Selenium での処理の範囲外です。

Chrome では、プラグインまたはアプリを追加するときに、Selenium では「クリック可能」ではないモーダル ウィンドウが表示されます。Chrome を再起動する必要はありません。

Firefox には、拡張機能のアクセス許可を求めるプロンプトと同じ種類の動作があります。

ブラウザの外部にあるものを試して、やりたいことを実行できます。シクリならうまくいくかもしれない。

于 2013-02-28T14:45:20.753 に答える