11

新しいウィンドウではなく、すべてのリンクを同じウィンドウで開きたいです。私は試した

profile.setPreference("browser.link.open_newwindow", 1)

しかし、結果は次のとおりです。

WARNING: traffic.loop 0 error: Preference browser.link.open_external may not be overridden: frozen value=2, requested value=1

リンクを同じウィンドウで開く別の方法はありますか?

4

6 に答える 6

1

回避策を見つけました!

JavascriptExecutor js = (JavascriptExecutor) driver;
String script = "document.getElementById('yourFormOrAnchorId').target=''";
js.executeScript(script);

その後、アンカーまたは任意のフォーム要素を選択して、クリックまたは送信できます。対象のページが同じタブで開きます。

これは基本的に現在の HTML ページを変更して、アンカーとフォームがブラウザに新しいタブやウィンドウを強制的に開かないようにします。テストの場合、これは最適ではないかもしれませんが、テストの作成が大幅に簡素化されます。

于 2014-09-30T14:09:43.500 に答える
1

これを試してみてください... FireFox プロファイル パラメータ"browser.link.open_newwindow.restriction"および"browser.link.open_newwindow" を変更します。

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.link.open_newwindow.restriction", 0);
profile.setPreference("browser.link.open_newwindow", 1);

Google Chrome を使用している場合は、この拡張機能をインストールするだけで、残りのタスクが処理されます。この拡張機能は、通常は新しいウィンドウで開くポップアップを新しいタブで開くのにも便利です。(最初に、指定された場所から拡張子 .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);
于 2017-01-16T09:34:33.820 に答える
0

Selium ドキュメント ( https://code.google.com/p/selenium/wiki/FirefoxDriver ) によると、次のプロパティ webdriver.firefox.profile は、使用される Firefox プロファイルを制御します。

これは、Firefox が起動時に browser.link.open_newwindow を取得する場所です。テスト用の新しいプロファイルを作成するには、こちらの手順に従ってください https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profilesプロファイルの詳細な構成は、プロファイルの pref.js を編集するか、プロファイルを起動して about:config で編集します。

これが助けになることを願っています!

于 2014-09-30T13:29:55.050 に答える
-1

実際、Seleniumは、新しいウィンドウまたは同じウィンドウで開いたページについては責任を負いません。これは、実行に使用したブラウザ設定に完全に依存します。

念のため、Firefoxブラウザを使用してください

新しいウィンドウですべてのリンクを開きたい場合。これらの手順を実行します

  1. ツールを開く
  2. [オプション]をクリックします
  3. タブメニューをクリックします
  4. のチェックボックスをオンにしますOpen new windows in a new tab instead.

次に、ウィンドウを開くリンクをクリックします。同じウィンドウの新しいタブで開きます。

于 2013-02-25T04:11:40.097 に答える