web-dev-qa-db-ja.com

ChromeDriver-Selenium WebDriverオートメーションの開発者モード拡張機能ポップアップを無効にする

次の問題が発生しています。自動化テストを実行しているときに、Chromeで次のアラート「開発者モード拡張機能を無効にする」が引き続き表示されます。

enter image description here

これを削除/無効にする方法はありますか?いくつかのテストに失敗するので、それは私にとってブロッカーです。

前もって感謝します

34
elcharrua

コマンドラインパラメーターで開発者拡張機能を無効にしようとしましたか?

次のSelenium WebDriver Javaコードで試してください:

System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
driver = new ChromeDriver(options);
55
Mauricio

拡張機能を開発およびテストしているため、拡張機能を無効にできません。

このポップアップを閉じるために私がしていることは次のとおりです。

  1. Seleniumを使用して、拡張機能でchromeをロードします。
  2. その後、すぐに新しいウィンドウを作成します(SendKeys(Control-N)メソッドを使用)。これにより、3秒後に「開発者モード拡張機能を無効にする」ポップアップが表示されます新しいウィンドウで
  3. いつポップアップするかをプログラムで伝えることはできません(スクリーンショットには表示されません)。そのため、4秒待つだけです。
  4. 次に、driver.Close();を使用してタブを閉じます(この新しいウィンドウも閉じます)。 Chromeはそれを「キャンセル」として受け取り、ポップアップを閉じ、元のウィンドウとタブを残します。

ポップアップが、タブやウィンドウを切り替えるために使用しているSendKeysなどの通常のSeleniumブラウザーの対話を妨げるため、これが必要だと感じています。

8
Erik Eidt

これは、ChromeDriver.exe V2.23+Chrome 53.0

どのchromeバージョンがどのドライバで動作するかを理解するには、次の詳細なドキュメントを使用できます。 https://sites.google.com/a/chromium.org/chromedriver/downloads

自動テストをお楽しみください!!

3
RArora

chrome 54およびchromedriver 2.25で解決

2

AutoITを使用してこの問題を回避しました。

最初に、スクリプトを作成する必要があります。

closechromewarning.au3:

WinWaitActive("[CLASS:Chrome_WidgetWin_1]")
Send("{ESC}")

スクリプトを.exeにコンパイルしてから、.exeをパスに配置して実行できるようにする必要があります。

C#構文を使用して、警告を閉じる関数:

public void CloseChromeDialog()
{
    System.Threading.Thread.Sleep(5000);
    Process.Start(@".\closechromewarning.exe");
}

Sleep(4000)は機能しましたが、念のためSleep(5000)に上げました。

CloseChromeDialog()の呼び出し:

if(browser == chrome) //pseudo code
    CloseChromeDialog();
2
Richard

Chromedriver v2.33の時点で、このメッセージを回避する正しい方法は load-extensionexcludeSwitches オブジェクトのchromeOptions引数に。次のJavaコードはトリックを行う必要がありますが、Pythonを実行しているため、テストしていません。

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches", Collections.singletonList("load-extension"));

他の人が指摘しているように、犯人はおそらくChrome Automation Extensionであり、ChromedriverがChromeを起動するときに自動的にロードされます。

Chromedriver v2.33 導入済み 拡張機能が読み込まれないようにする新しいスイッチ:

--load-extensionスイッチの除外を許可するexcludeSwitches機能の更新。

このソリューションでは、すべての拡張機能を無効にする必要はないと思われます。他の人を手動で読み込むことができるはずです。

1
Peter P

ChromeDriverインスタンスの上にsetPropertyを追加してみてください

System.setProperty("webdriver.chrome.driver","C:/[PATH]/chromedriver.exe");
driver = new ChromeDriver(capabilities);
0
Jess

私もこの問題に直面しました。解決策は、Mavenを使用している場合は、次を追加するだけです。

-Dchrome.switches=--disable-extensions

すべての拡張機能が無効になり、この問題に直面することはありません。

0
sateesh

私はSelenium Webdriver 2.53を使用しています。chromeバージョン56.0.2924.87、使用しているchrome driver.exeは2.27です。この組み合わせで動作しますその

System.setProperty("webdriver.chrome.driver", "./utilities/chromedriver.exe");          
ChromeOptions options = new ChromeOptions();        
options.addArguments("--disable-extensions");           
DesiredCapabilities caps = new DesiredCapabilities().chrome();
caps.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(caps);
0
Sudhanva Patil