web-dev-qa-db-ja.com

Chrome=は自動テストソフトウェアによって制御されています

Serenity BDD(Selenium)を使用してChrome=で自動テストを実行しています。

テストを実行できなかったため、新しいChromeDriverをダウンロードする必要がありました->テストではChromeDriverが開きますが、「ユーザーとして参照」できませんでした。私が問題をグーグルで調べたとき、彼らは私がChromeDriverをアップデートしなければならないと言った。

そこで、ChromeDriverをバージョン2.28に更新し、Chromeバージョンをバージョン57.0.2987.98に更新しました。

しかし今-テストを実行するたびに、この厄介なテキストが表示されます:

Chromeは自動テストソフトウェアによって制御されています

そして、パスワードを保存するかどうかを尋ねられます。 (十分な「ポイント」がないため、写真を追加できません)

前のバージョンでは、これら2つのことを次の方法でブロックすることができました。

public class CustomChromeDriver implements DriverSource {

    @Override
    public WebDriver newDriver() {
        try {
            DesiredCapabilities capabilities = DesiredCapabilities.chrome();
            Proxy proxy = new Proxy();
            String proxyServer = String.format("AProxyIDontWantToDisplay", System.getenv("proxy.username"), System.getenv("proxy.password"));
            proxy.setHttpProxy(proxyServer);
            capabilities.setCapability("proxy", proxy);
            ChromeOptions options = new ChromeOptions();
            options.addArguments(Arrays.asList("--no-sandbox","--ignore-certificate-errors","--homepage=about:blank","--no-first-run"));
            capabilities.setCapability(ChromeOptions.CAPABILITY, options);
            ChromeDriver driver = new ChromeDriver(capabilities);
            return driver;
        } catch (Exception e) {
            throw new Error(e);
        }
    }

    @Override
    public boolean takesScreenshots() {
        return true;
    }
}

私はこれが存在することを知っています( 同じ問題へのリンク )が、うまくいかない答えが多すぎます。

それを削除する方法を知っている人はいますか?

14
BobbyB

これをドライバーに渡すオプションに追加します。

options.addArguments("disable-infobars");
29
jgode

「Chromeは自動テストソフトウェアによって制御されています」というテキストポップアップについて:テストには影響しません。そして、他のこと(たとえば、パスワードを保存する)を処理するために、コードに以下の行を追加できます。

ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_settings.popups", 0);
options.addArguments("disable-extensions");
prefs.put("credentials_enable_service", false);
prefs.put("password_manager_enabled", false);
options.setExperimentalOption("prefs", prefs);
options.addArguments("chrome.switches","--disable-extensions");
options.addArguments("--test-type");
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(ChromeOptions.CAPABILITY, options);
cap.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.ACCEPT);
System.setProperty("webdriver.chrome.driver",*path of chromedriver.exe*);
wb = new ChromeDriver(cap);

それがうまくいくことを願っています。

6
Anuj Teotia

誰かがカピバラのためにこれを必要とするかもしれません、ワティルは次のようになるはずです:

Capybara.register_driver :chrome do |app|
  $driver = Capybara::Selenium::Driver.new(app, {:browser => :chrome, :args => [ "--disable-infobars" ]})
end
3
Mesut GÜNEŞ
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("useAutomationExtension", false);
options.setExperimentalOption("excludeSwitches",Collections.singletonList("enable-automation"));    
WebDriver driver = new ChromeDriver(options);

最新のChrome=ドライバーには上記のコードを使用します。

1
Rajeev

disable-infobarsルートは機能しますが、OPが参照している場合だけでなく、すべての場合(提案されている here )で情報バーを抑制する可能性があります。これはせいぜいやり過ぎであり、重要なメッセージを受け取っていない場合、将来、予期せぬ不可解な動作につながる可能性があります。

提供されている enable-automation switch(それを無効にするconfig/setupの excludeSwitches 領域で、disable-inforbarsに関して何もしません。 enable-automationスイッチの説明:

ブラウザが自動テストによって制御されていることをユーザーに通知します。

nightwatch.conf.jsの場合、これは次のようになります(そして私のために働きました):

desiredCapabilities: {
  ...
  chromeOptions: {
    excludeSwitches: ['enable-automation'],
    ...
  }
}

これは、特定の厄介なメッセージを取り除くことだけを行ってからです。

編集[2017-11-14]:これにより、今ではさらに厄介なDisable Developer Mode Extensionsアラート/警告が発生しています。関連するすべてのフラグ/スイッチを試してみましたが、役に立つかもしれませんが、役に立ちませんでした。 Chromiumでバグを報告したので、解決策が得られた場合は確認し、ここに戻ります。

1
cwnewhouse
Map<String, Object> prefs = new HashMap<String, Object>();
//To Turns off multiple download warning
prefs.put("profile.default_content_settings.popups", 0);

prefs.put( "profile.content_settings.pattern_pairs.*.multiple-automatic-downloads", 1 );

//Turns off download Prompt
prefs.put("download.Prompt_for_download", false);
                    prefs.put("credentials_enable_service", false);
//To Stop Save password propmts
prefs.put("password_manager_enabled", false);

ChromeOptions options = new ChromeOptions();
options.addArguments("chrome.switches","--disable-extensions");
//To Disable any browser notifications
options.addArguments("--disable-notifications");
//To disable yellow strip info bar which prompts info messages
options.addArguments("disable-infobars");

options.setExperimentalOption("prefs", prefs);
System.setProperty("webdriver.chrome.driver", "Chromedriver path");
options.addArguments("--test-type");
driver = new ChromeDriver(options);
Log.info("Chrome browser started");
0
Sasank Sarma

「disable-info」スイッチは、最新のchromedriverではサポートされなくなりました。 (少なくとも76.0)。
@ Rajeevの答えは機能します。ここでは、C#の対応物を作成します。

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddAdditionalOption("useAutomationExtension", false);
chromeOptions.AddExcludedArgument("enable-automation");
Driver = new ChromeDriver(chromeOptions);
0
Piao David

addArguments(array( "disable-infobars"))を使用して動作します

これはfacebook/php-webdriver

$options = new ChromeOptions();
$options->addArguments(array("disable-infobars"));
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
$this->driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities);
0
Tree Go

これを使用してもよい

options1.add_argument("--app=https://www.google.com.ph")
0
JexAce
public WebDriver SetupChromeDriver(){
        //Initialize Chrome Driver
        ChromeOptions options = new ChromeOptions();
        Map<String, Object> prefs = new HashMap<String, Object>();
        prefs.put("safebrowsing.enabled", "true"); 
        options.setExperimentalOption("prefs", prefs); 
        options.addArguments("--disable-notifications");
        options.addArguments("--start-maximized");
        options.addArguments("disable-infobars");
        System.setProperty("webdriver.chrome.driver", "E:/Importent Softwares/Chrome Driver/chromedriver_2.37.exe");
        driver = new ChromeDriver(options);
        return driver;
}
0
Rishi12

誰かがRails 5.1 +を使用しており、テスト構造が少し変更され、Capybaraがシステムテスト用にこのファイルで設定された場合:

application_system_test_case.rb

driven_byのオプションに"args"を次のように追加できます。

driven_by :Selenium, using: :chrome, screen_size: [1400, 1400], options: { args: ["--disable-infobars"] }
0
PDD

分度器ソリューション:

私はここに到着し、分度器のソリューションを探しました。見つけた人に役立つなら、上記の答えを参考にしてください。 Protractorでは、protractor.configファイルの機能オブジェクト内でchromeOptionsオブジェクトにChrome特定のオプションを追加できます。たとえば、上記のdisable-infobarsオプションを使用するには、次を使用します。

capabilities: {
  'browserName': 'chrome',
  'chromeOptions': {
    'args': ['disable-infobars']
  }
},

前述のenable-automationを使用するには:

capabilities: {
  'browserName': 'chrome',
  'chromeOptions': {
    'excludeSwitches': ['enable-automation']
  }
}

私の環境ではdisable-infobarsが推奨されます。

0
MatthewThomasGB