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;
}
}
私はこれが存在することを知っています( 同じ問題へのリンク )が、うまくいかない答えが多すぎます。
それを削除する方法を知っている人はいますか?
これをドライバーに渡すオプションに追加します。
options.addArguments("disable-infobars");
「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);
それがうまくいくことを願っています。
誰かがカピバラのためにこれを必要とするかもしれません、ワティルは次のようになるはずです:
Capybara.register_driver :chrome do |app|
$driver = Capybara::Selenium::Driver.new(app, {:browser => :chrome, :args => [ "--disable-infobars" ]})
end
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("useAutomationExtension", false);
options.setExperimentalOption("excludeSwitches",Collections.singletonList("enable-automation"));
WebDriver driver = new ChromeDriver(options);
最新のChrome=ドライバーには上記のコードを使用します。
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でバグを報告したので、解決策が得られた場合は確認し、ここに戻ります。
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");
「disable-info」スイッチは、最新のchromedriverではサポートされなくなりました。 (少なくとも76.0)。
@ Rajeevの答えは機能します。ここでは、C#の対応物を作成します。
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddAdditionalOption("useAutomationExtension", false);
chromeOptions.AddExcludedArgument("enable-automation");
Driver = new ChromeDriver(chromeOptions);
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);
これを使用してもよい
options1.add_argument("--app=https://www.google.com.ph")
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;
}
誰かが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"] }
分度器ソリューション:
私はここに到着し、分度器のソリューションを探しました。見つけた人に役立つなら、上記の答えを参考にしてください。 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が推奨されます。