Chrome のオプションと必要な機能 Selenium

⚡ スマートサマリー

Chromeのオプションと必要な機能 Selenium WebDriver は、自動テスト中に Chrome ブラウザがどのように起動し、どのように動作するかを制御します。これらを組み合わせることで、引数、拡張機能、SSL 処理、クロス ブラウザ設定を構成し、テスト実行を柔軟で再現性のあるものにし、 Selenium グリッド実行。

  • 🌐 Chromeオプション: セッションをカスタマイズするために、start-maxized、incognito、headlessなどの引数を使用します。
  • ⚙️ 求められる機能: ブラウザ名、プラットフォーム、バージョン、およびSSL証明書の受け入れ設定を行います。
  • 🧩 拡張機能: CRXファイルを手動でインストールするのではなく、自動化によって読み込む。
  • 🇧🇷 正体不明で頭なし: 再利用可能なコードは、CIパイプラインのためにプライベートセッションまたはバックグラウンドセッションを実行します。
  • 甘いもの<XNUMXxXNUMX><XNUMXxXNUMX><XNUMXxAXNUMX><XNUMXxAXNUMX>️️ Selenium グリッド: これらの機能により、クロスブラウザ対応の分散テスト実行が可能になります。
  • ⚠️ Selenium 4年の注記: DesiredCapabilitiesは非推奨です。ChromeOptionsを直接ドライバーに渡してください。

Chromeのオプションと必要な機能 Selenium webdriver

Chrome オプション クラスとは何ですか?

その Chromeoptions クラス の概念です Selenium Chrome ドライバーのさまざまなプロパティを操作するための WebDriver。Chrome オプション クラスは通常、Chrome ドライバー セッションをカスタマイズするために Desired Capabilities と組み合わせて使用​​されます。これにより、Chrome を最大化モードで開く、既存の拡張機能を無効にする、ポップアップを無効にするなどのさまざまな操作を実行できます。

例:

以下の例は、ChromeOptions クラスを使用して Chrome ブラウザを最大化モードで開く方法を示しています。 ChromeOptions クラスのインスタンスを Web ドライバーの初期化に渡す必要があります。

ChromeOptions options = new ChromeOptions()
options.addArgument("start-maximized");
ChromeDriver driver = new ChromeDriver(options);

以下は、ChromeOptions クラスで利用可能な最も一般的に使用される引数のリストです。

  • 開始最大化: Chrome を最大化モードで開きます
  • シークレット: Chrome をシークレット モードで開きます
  • ヘッドレス: Chrome をヘッドレス モードで開きます
  • 拡張機能を無効にする: Chrome ブラウザの既存の拡張機能を無効にします
  • ポップアップブロックを無効にする: Chromeブラウザに表示されるポップアップを無効にします
  • デフォルトブラウザにする: Chromeをデフォルトのブラウザにします
  • バージョン: Chrome ブラウザのバージョンを表示します
  • 情報バーを無効にする: Chrome が「Chrome は自動ソフトウェアによって制御されています」という通知を表示しないようにします

必要な機能クラス

必要な機能クラス Web ドライバーの複数のプロパティを変更するために使用されます。これは、ブラウザ名、ブラウザ プラットフォームなどの Web ドライバの個々のプロパティを変更するためのキーと値のペアを提供します。 Desired Capabilities クラスの一般的なメソッドは、setCapability メソッドです。主に一緒に使用されます Selenium グリッド。同じテスト ケースを異なるブラウザーで実行する必要があります。

例:

以下の例は、Chrome クラスの Desired Capabilities を使用して、Chrome ブラウザがデフォルトで Web サイト上の SSL 証明書を受け入れることができるようにする方法を示しています。

// Create an object of desired capabilities class with Chrome driver
DesiredCapabilities SSLCertificate = DesiredCapabilities.chrome();
// Set the pre defined capability – ACCEPT_SSL_CERTS value to true
SSLCertificate.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
// Open a new instance of chrome driver with the desired capability
WebDriver driver = new ChromeDriver(SSLCertificate);

以下は、最も一般的に使用される事前定義された機能タイプです。

機能名 詳細説明
ACCEPT_SSL_CERTS このプロパティは、デフォルトで SSL 証明書を受け入れるようにブラウザに指示します。
PLATFORM_NAME このプロパティは、Web サイトにアクセスするために使用するオペレーティング システム プラットフォームを設定するために使用されます。
BROWSER_NAME このプロパティは、Web ドライバー インスタンスのブラウザー名を設定するために使用されます。
VERSION このプロパティはブラウザのバージョンを設定するために使用されます

広告ブロッカー拡張機能の Chrome オプション

ChromeブラウザのAdblocker拡張機能は、ChromeDriver OptionsとDesired Capabilitiesクラスを使用して処理できます。アクセスする手順は次のとおりです。 AdBlockDesired Capabilities クラスを使用して、Chrome ブラウザーで er 拡張機能を追加します。

ステップ1) AdBlockChrome オプション クラスを使用する前に、Chrome ブラウザに er 拡張機能をインストールする必要があります

ステップ2) Extract 対応する CRX ファイル AdBlockhttp://crxex を介した er 拡張機能tractor.com/

ステップ3) ダウンロードした CRX ファイルのパスを Chrome オプション クラスに渡します

ステップ4) 必要な機能クラスと Chrome オプションを使用して Web ドライバーをインスタンス化します。 Selenium オブジェクト

例:

以下の例は、Chrome オプションと Desired Capabilities クラスを使用して Chrome ブラウザーで広告ブロッカー拡張機能を有効にする方法を示しています。

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("Path to CRX File"));
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);

Extract CRXファイル

以下の手順は、tracウェブサイト経由で広告ブロッカーを介してCRXファイルを実行する – http://crxextractor.com/

ステップ1) に行く http://crxextractor.com/ そしてスタートボタンをクリックしてください

Extract CRXファイル

ステップ2) Chrome拡張機能「広告ブロッカー」を入力してください。 URL テキストボックスの下。 URL ChromeウェブストアのAdblockは https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

そして「OK」をクリックします

Extract CRXファイル

ステップ3) [OK] ボタンをクリックすると、ボタンのラベルが以下のように Get .CRX に変わります。 「Get .CRX」ボタンをクリックすると、拡張子に対応するCRXファイルがダウンロードされます。

Extract CRXファイル

ステップ4) ファイルをローカル マシンに保存し、保存されたパスをメモします。 次のステップは、保存されたパスを Chrome オプション クラスに渡すことです。

サンプル Code:

  1. 次の場所に広告が表示されます https://demo.guru99.com/ 以下のように

Extract CRXファイル

  1. 自律的AI AdBlockChrome ブラウザ広告で有効になっている拡張機能は無効にする必要があります
package adblock;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;


public class AdblockDemo {
public static void main(String[] args)  {
	
	System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");		
	ChromeOptions options = new ChromeOptions();
	options.addExtensions(new File("X://extension_3_40_1_0.crx")); 
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability(ChromeOptions.CAPABILITY, options);
	options.merge(capabilities);
	ChromeDriver driver = new ChromeDriver(options);
	driver.get("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();
	//driver.quit();
	}
	
}

Code 説明:

  1. テストには Chrome ブラウザを使用しているため、最初に、set property メソッドを使用して chromedriver.exe ファイルへのパスを設定する必要があります。
  2. 拡張機能メソッドを追加するには、CRX ファイルへのパスを設定する必要があります
  3. 次に、Chrome Desired Capabilities のオブジェクトを作成する必要があります。 Selenium クラスを作成し、それを Web ドライバー インスタンスに渡します。から Selenium 3.8.1 バージョンでは、ドライバー機能クラスは非推奨になっており、Chrome ドライバー コンストラクターに引数として渡す前に、機能オブジェクトを Chrome オプション オブジェクトとマージする必要があります。
  4. Video Cloud Studioで URL – https://demo.guru99.com/test/simple_context_menu.html 広告ブロッカー拡張機能が有効になっている場合
  5. ブラウザを最大化して閉じます

注: 私たちは可能にしています AdBlockえー拡張子 ChromeブラウザでAdblocker拡張機能を手動で有効にする代わりに、自動化スクリプトを介してChromeブラウザで。CRXファイルは、自動化スクリプトを使用して広告ブロッカー拡張機能にアクセスする方法です。

出力:

Chrome ブラウザは次のように有効になります。 AdBlocker 拡張機能は広告なしで以下のように有効になります

Extract CRXファイル

ChromeOptionsは拡張機能の読み込みだけでなく、ブラウザウィンドウ自体の動作も制御します。

Chrome のシークレット モードのオプション

Chrome オプションは、事前定義された引数を使用してシークレット モードで使用できます。お忍びで.

以下は、同じことを実現するサンプルコードです。

サンプル Code:

package test;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;

public class Incognito{
public static void main(String[] args) {
	// TODO Auto-generated method stub
	System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
	ChromeOptions options = new ChromeOptions();
	options.addArguments("--incognito");
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability(ChromeOptions.CAPABILITY, options);
	options.merge(capabilities);
	ChromeDriver driver = new ChromeDriver(options);		
	driver.get("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();		
	//driver.quit();
	}
	}

Code 説明:

  1. テストには Chrome ブラウザを使用しているため、最初に、set property メソッドを使用して chromedriver.exe ファイルへのパスを設定する必要があります。
  2. 次に、Chrome Options クラスのオブジェクトを作成し、それを Web ドライバー インスタンスに渡す必要があります。 Chrome ブラウザをシークレット モードで開きたいため、引数 –incognito を Chrome Options クラスに渡す必要があります。
  3. 次に、Desired Capabilities クラスのオブジェクトを作成し、merge メソッドを使用して Desired Capabilities クラスのオブジェクトを Chrome Options クラスのオブジェクトとマージします。
  4. Chrome Driver クラスのオブジェクトを作成し、Chrome Options オブジェクトを引数として渡す必要があります
  5. 最後に、 URL – https://demo.guru99.com/test/simple_context_menu.html driver.get メソッドへ
  6. ブラウザを最大化して閉じます

出力:

以下のように、Chrome ブラウザ ウィンドウがシークレット モードで開きます。

Chrome のシークレット モードのオプション

ヘッドレス Chrome の Chrome オプション

ヘッドレス ブラウザはバックグラウンドで実行されます。ブラウザの GUI やそこで実行された操作は表示されません。

Chrome ブラウザをヘッドレス モードで実行するための Chrome オプションは、事前定義された引数を使用して実行できます。レス.

これを実現するためのサンプルコードを以下に示します。

例:

package test;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;


public class HeadlessModeDemo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
		ChromeOptions options = new ChromeOptions();
		options.addArguments("--headless");
		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability(ChromeOptions.CAPABILITY, options);
		options.merge(capabilities);
		ChromeDriver driver = new ChromeDriver(options);		
		driver.get("https://demo.guru99.com/");
		driver.manage().window().maximize();
		String title = driver.getTitle();
		System.out.println("Page Title: " +title);
		driver.quit();
		}


}

Code 説明:

  1. テストには Chrome ブラウザを使用しているため、最初に、set property メソッドを使用して chromedriver.exe ファイルへのパスを設定する必要があります。
  2. 次に、Chrome Options クラスのオブジェクトを作成し、Web ドライバー インスタンスに渡します。 Chrome ブラウザをヘッドレス モードで開きたいため、引数 –headless を Chrome Options クラスに渡す必要があります。
  3. DesiredCapabilities Chrome クラスのオブジェクトを作成し、merge メソッドを使用して Desired Capabilities クラス オブジェクトを Chrome Options クラス オブジェクトとマージします。
  4. Chrome Driver クラスのオブジェクトを作成し、Chrome オプションを渡します Selenium 引数としてのオブジェクト
  5. 最後に、 URL – https://demo.guru99.com/ driver.get メソッドへ
  6. ページタイトルを印刷してブラウザを閉じます

出力

Chrome はヘッドレス モードで動作するため、上記のコードではブラウザは表示されません。ページ タイトルは以下のように取得され、表示されます。

ヘッドレス Chrome の Chrome オプション

よくあるご質問

Yes. Selenium 4つのDesiredCapabilitiesは非推奨となり、代わりにChromeOptionsなどのブラウザオプションクラスが使用されるようになりました。 Selenium 3 あなたはそれらを統合しました。 Selenium 4. ChromeOptionsをドライバーに直接渡します。

addArguments 関数を複数のフラグを指定して呼び出すことができます。例えば、`options.addArguments` 関数に `start-maximized` と `incognito` を指定します。複数の呼び出しを連結することも可能です。各引数によって、Chrome セッションの起動方法がカスタマイズされます。

addArgumentsは、ヘッドレスモードやシークレットモードなどのコマンドラインフラグをChromeに渡します。addExtensionsは、パッケージ化された.crx拡張ファイルをセッションに読み込みます。どちらも動作をカスタマイズしますが、目的は異なります。

はい。Copilot などの AI アシスタントは ChromeOptions と機能設定をスキャフォールディングし、引数名を提案し、非推奨の API を説明します。フラグ名と Selenium バージョンは頻繁に変更されます。

AIによる自己修復ツールは、引数の自動更新、不安定なフラグの検出、Chromeのアップグレード後の安定した代替案の提案などを行います。これにより、ヘッドレス実行時のメンテナンスや、CI環境間での機能の不一致といった問題を軽減できます。

はい。ChromeOptionsはRemoteWebDriverと連携してGridを実行します。リモートセッションにオプションを添付することで、分散したマシンやブラウザ間で同じ設定を実行できます。

これは通常、ChromeDriverとChromeブラウザのバージョンが一致していないことを意味します。一致するChromeDriverをインストールするか、 Selenium マネージャー Selenium 4. ドライバーを自動的に解決します。

実験的なオプションとして、setExperimentalOption を介して download.default_directory を指定した設定マップを使用します。これにより、Chrome は自動テスト中にファイルをそのフォルダに自動的に保存します。