Chrome のオプションと必要な機能 Selenium ウェブドライバー
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) に対応する CRX ファイルを抽出します。 AdBlockhttp://crxextractor.com/ 経由の er 拡張機能
ステップ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);
CRX ファイルの抽出
以下の手順は、Web サイトから広告ブロッカーを介して CRX ファイルを抽出するプロセスを示しています。 http://crxextractor.com/
ステップ1) に行く http://crxextractor.com/ そしてスタートボタンをクリックしてください
ステップ2) テキストボックスの下にChrome拡張機能 - 広告ブロッカーのURLを入力します。ChromeウェブストアのAdblockのURLは https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
そして「OK」をクリックします
ステップ3) [OK] ボタンをクリックすると、ボタンのラベルが以下のように Get .CRX に変わります。 「Get .CRX」ボタンをクリックすると、拡張子に対応するCRXファイルがダウンロードされます。
ステップ4) ファイルをローカル マシンに保存し、保存されたパスをメモします。 次のステップは、保存されたパスを Chrome オプション クラスに渡すことです。
サンプルコード:
- 次の場所に広告が表示されます https://demo.guru99.com/ 以下のように
- 連絡先 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(); } }
コードの説明:
- テストには Chrome ブラウザを使用しているため、最初に、set property メソッドを使用して chromedriver.exe ファイルへのパスを設定する必要があります。
- 拡張機能メソッドを追加するには、CRX ファイルへのパスを設定する必要があります
- 次に、Chrome Desired Capabilities のオブジェクトを作成する必要があります。 Selenium クラスを作成し、それを Web ドライバー インスタンスに渡します。から Selenium 3.8.1 バージョンでは、ドライバー機能クラスは非推奨になっており、Chrome ドライバー コンストラクターに引数として渡す前に、機能オブジェクトを Chrome オプション オブジェクトとマージする必要があります。
- URL を開きます – https://demo.guru99.com/test/simple_context_menu.html 広告ブロッカー拡張機能が有効になっている場合
- ブラウザを最大化して閉じます
注: 私たちは可能にしています AdBlockえー拡張子 ChromeブラウザでAdblocker拡張機能を手動で有効にする代わりに、自動化スクリプトを介してChromeブラウザで。CRXファイルは、自動化スクリプトを使用して広告ブロッカー拡張機能にアクセスする方法です。
出力:
Chrome ブラウザは次のように有効になります。 AdBlocker 拡張機能は広告なしで以下のように有効になります
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 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(); } }
コードの説明:
- テストには Chrome ブラウザを使用しているため、最初に、set property メソッドを使用して chromedriver.exe ファイルへのパスを設定する必要があります。
- 次に、Chrome Options クラスのオブジェクトを作成し、それを Web ドライバー インスタンスに渡す必要があります。 Chrome ブラウザをシークレット モードで開きたいため、引数 –incognito を Chrome Options クラスに渡す必要があります。
- 次に、Desired Capabilities クラスのオブジェクトを作成し、merge メソッドを使用して Desired Capabilities クラスのオブジェクトを Chrome Options クラスのオブジェクトとマージします。
- Chrome Driver クラスのオブジェクトを作成し、Chrome Options オブジェクトを引数として渡す必要があります
- 最後に、URL を渡す必要があります – https://demo.guru99.com/test/simple_context_menu.html driver.get メソッドへ
- ブラウザを最大化して閉じます
出力:
以下のように、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(); } }
コードの説明:
- テストには Chrome ブラウザを使用しているため、最初に、set property メソッドを使用して chromedriver.exe ファイルへのパスを設定する必要があります。
- 次に、Chrome Options クラスのオブジェクトを作成し、Web ドライバー インスタンスに渡します。 Chrome ブラウザをヘッドレス モードで開きたいため、引数 –headless を Chrome Options クラスに渡す必要があります。
- DesiredCapabilities Chrome クラスのオブジェクトを作成し、merge メソッドを使用して Desired Capabilities クラス オブジェクトを Chrome Options クラス オブジェクトとマージします。
- Chrome Driver クラスのオブジェクトを作成し、Chrome オプションを渡します Selenium 引数としてのオブジェクト
- 最後に、URL を渡す必要があります – https://demo.guru99.com/ driver.get メソッドへ
- ページタイトルを印刷してブラウザを閉じます
出力
Chrome はヘッドレス モードで動作するため、上記のコードではブラウザは表示されません。ページ タイトルは以下のように取得され、表示されます。
まとめ
- Selenium Chrome Options クラスは、Chrome ドライバーのさまざまなプロパティを操作するために使用されます
- 必要な Chrome Capabilities クラスは、ブラウザ名、ブラウザ プラットフォームなどの Web ドライバの個々のプロパティを変更するためのキーと値のペアのセットを提供します。
- Chrome ブラウザの拡張機能を操作するには、拡張機能に対応する CRX ファイルを抽出し、Chrome オプション クラスに追加する必要があります。
- –incognito および –headless は、Chrome ブラウザをシークレット モードおよびヘッドレス モードで使用するために Chrome オプション クラスによって提供される事前定義された引数です。