10

Capybara / RSpecを使用していくつかの自動テストを作成しています。この少しのルビーを使用して、ドライバーを選択/構成します。

Capybara.register_driver :selenium_chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

クリックしたボタンがポップアップウィンドウを開いているかどうか、およびウィンドウに必要なコンテンツが表示されているかどうかをテストしています。問題は、テストがウィンドウを開くと、Google Chromeポップアップブロッカーがウィンドウをブロックし、テストが失敗することです。オプションメニューからブロッカーを無効にしても機能しません。また、これらをサーバーで実行すると、同じ問題が発生するのではないかと心配しています。

テストのポップアップブロックを自動的に無効にする方法はありますか?

4

7 に答える 7

8

非常によく似た問題がありました。Johnが言うように、コマンドラインスイッチは機能しなくなりました。カスタムプロファイルを使用してみましたが、上書きされているようです。

最終的には、それ自体を使用してポップアップを手動で無効にすることで解決しました。WebDriver

driver.get('chrome://settings/advanced')
driver.find_element_by_id('privacyContentSettingsButton').click()
driver.find_element_by_name('popups').click()

これは、ユーザーがとにかく行うことのようなものだと思います;-)

于 2012-01-27T19:16:07.970 に答える
7

オプションでドライバーを呼び出すことができます。

ChromeOptions options = new ChromeOptions();
options.addArguments("-incognito");
options.addArguments("--disable-popup-blocking");

ChromeDriver driver = new ChromeDriver(options);
于 2015-11-09T09:58:53.733 に答える
3

これを試して:

Capybara::Selenium::Driver.new(app, :browser => :chrome, :switches => %w[--disable-popup-blocking)

これは、Selenium wiki のRubyBindingsページに記載されています。

于 2011-10-12T16:19:41.370 に答える
2

現時点ではできないと思います。同じ問題があります。現在のバージョンの chrome では、ポップアップ ブロッカーを無効にすることがコマンド ライン スイッチではなくなっているようです。

http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/chrome/common/chrome_switches.cc&exact_package=クロム

于 2011-11-03T02:55:40.523 に答える
1

JavaScript バージョン

このようにJavaScriptで行うことができます...

var chrome = require('selenium-webdriver/chrome.js');
var options = new chrome
              .Options()
              .addArguments('-incognito', '--disable-popup-blocking');

var driver = new webdriver.Builder()
    .forBrowser('chrome')
    .setChromeOptions(options)
    .build();

driver.manage().timeouts().setScriptTimeout(10000);

return driver;
于 2016-05-20T14:24:44.083 に答える