機能とは、ChromeDriver セッションのカスタマイズと構成に使用できるオプションです。このページでは、ChromeDriver でサポートされているすべての機能とそれらの使用方法について説明します。
WebDriver 言語 API は、ChromeDriver に機能を渡す方法を提供します。正確なメカニズムは言語によって異なりますが、ほとんどの言語では次のメカニズムのいずれかまたは両方が使用されます。
ChromeOptions
クラスを使用します。Java、Python などでサポートされています。DesiredCapabilities
クラスを使用します。Python、Ruby などでサポートされています。Java でも使用できますが、Java での使用は非推奨です。
ChromeOptions クラスを使用する
ChromeOptions
のインスタンスを作成できます。このインスタンスには、ChromeDriver 固有の機能を設定するための便利なメソッドが用意されています。次に、ChromeOptions
を
これを ChromeDriver コンストラクタに渡します。
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Selenium バージョン 3.6.0 以降では、Java の ChromeOptions
クラスに Capabilities
インターフェースも実装されているため、ChromeDriver に固有ではない他の WebDriver 機能を指定できます。
ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);
// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
DesiredCapabilities の使用
DesiredCapabilities
を使用するには、機能の名前と、それが受け取る値の型を知っておく必要があります。全リストについては、こちらをご覧ください。
Python
caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)
Ruby
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
一般的なユースケース
カスタム プロファイル(ユーザーデータ ディレクトリとも呼ばれる)を使用する
デフォルトでは、ChromeDriver はセッションごとに新しい一時プロファイルを作成します。状況によっては、特別な設定を行ったり、カスタム プロフィールを単独で使用したりできます。前者の場合は、「chrome.prefs」を使用して機能(後述)を使用して、Chrome の起動後に適用される設定を指定できます。後者の場合は、user-data-dir
Chrome コマンドライン スイッチを使用して、使用するプロファイルを Chrome に指示できます。
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
独自のカスタム プロファイルを作成するには、user-data-dir
スイッチを新しいディレクトリに設定して(コマンドラインまたは ChromeDriver から)Chrome を実行します。パスが存在しない場合、Chrome は指定された場所に新しいプロファイルを作成します。その後、必要に応じてプロファイルの設定を変更することができます。ChromeDriver はそのプロファイルを今後使用できるようになります。ブラウザで chrome://version を開き、Chrome で使用しているプロファイルを確認します。
Chrome を最大化して起動する
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
標準以外の場所で Chrome の実行可能ファイルを使用する
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
ダイアログ ウィンドウをブロックする
デフォルトでは、ChromeDriver はポップアップ ウィンドウを許可するように Chrome を設定します。ポップアップをブロックする場合(つまり、ChromeDriver によって制御されていない場合に Chrome の通常の動作に戻す場合)は、次の手順を行います。
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
ダウンロード ディレクトリの設定
次のコードを使用すると、ファイルを特定のディレクトリにダウンロードするように Chrome を設定できます。ただし、次のような注意点があります。
- Chrome では、ダウンロードに特定のディレクトリを使用できません。特に、デスクトップ フォルダをダウンロード ディレクトリとして使用することはできません。Linux では、ダウンロードにホーム ディレクトリも使用できません。禁止ディレクトリの正確なリストは変更される可能性があるため、システムにとって特別な意味のないディレクトリを使用することをおすすめします。
- ChromeDriver はダウンロードの完了を自動的に待機しません。drive.quit() の呼び出しが早すぎると、ダウンロードが完了する前に Chrome が終了することがあります。
- 相対パスは必ずしも機能するとは限りません。最良の結果を得るには、代わりにフルパスを使用してください。
- Windows では、""使用します。「/」の使用Windows では信頼性に欠けます。
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
認定された機能
標準ファイルについては、Selenium のドキュメントと W3C WebDriver 標準をご覧ください。 機能をサポートしています。ここでは Chrome 固有の 提供します
ChromeOptions
オブジェクト
Chrome 固有の機能のほとんどは、ChromeOptions
を通じて公開されます。
渡されます。一部の言語では、これは ChromeOptions
クラスによって実装されます。イン
他の言語の場合、これらは goog:chromeOptions
辞書に保存されています。
選択できます。
perfLoggingPrefs
オブジェクト
perfLoggingPrefs ディクショナリの形式は次のとおりです(キーはすべて省略可能です)。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
enableNetwork
|
ブール値 | true | ネットワーク ドメインからイベントを収集するかどうか。 |
enablePage
|
ブール値 | true | ページのドメインからイベントを収集するかどうか。 |
traceCategories
|
文字列 | (空白) | トレース イベントを収集する Chrome トレース カテゴリのカンマ区切り文字列。指定しないか空の文字列を指定すると、トレースが無効になります。 |
bufferUsageReportingInterval
|
正の整数 | 1000 | DevTools のトレース バッファ使用イベントの合間にリクエストされたミリ秒数。たとえば、1,000 の場合、1 秒に 1 回、トレース バッファの空き容量が報告されます。バッファ使用率が 100% であることがレポートで示された場合は、警告が出されます。 |
返される機能
これは、Chrome 固有の返されるすべての機能のリストです。(新しいセッションの作成時に ChromeDriver が返すもの)
名前 | タイプ | 説明 |
---|---|---|
chrome.chromedriverVersion
|
文字列 | ChromeDriver のバージョン |
userDataDir
|
文字列 | Chrome が使用しているユーザーデータ ディレクトリのパスこれは「chrome」の内部で辞書 |