Selenium WebDriverで新しいセッションを作成するには、ローカルエンドがリモートエンドに基本的なCapabilities(ブラウザの設定情報)を提供する必要があります。 リモートエンドは、一連の同じCapabilitiesを使用してセッションを作成し、現在のセッション機能を描きます。
WebDriverは、各リモートエンドがCapabilitiesをサポートする/すべきCapabilitiesを提供します。 WebDriverがサポートするCapabilitiesは次のとおりです。
このCapabilityは、特定のセッションの browserName
を設定するために使います。
指定されたブラウザがリモートエンドにインストールされていない場合、セッションの作成は失敗します。
このCapabilityはオプションです。 これは、リモートエンドで使用可能なブラウザーバージョンを設定するために使います。 たとえば、Chromeバージョン80のみがインストールされているシステムでバージョン75を要求すると、セッションの作成は失敗します。
URLを介して新しいページに移動する場合、デフォルトでは、Seleniumは応答する前にページが完全にロードされるまで待機します。 これは初心者には効果的ですが、多数のサードパーティリソースをロードするページで長い待ち時間を引き起こす可能性があります。 デフォルト以外の戦略を使用すると、このような場合にテストの実行を高速化できますが、ページの要素がロードされてサイズが変更されると、ページ上の要素の位置が変化する不安定さを引き起こします。
次の表で説明するように、ページロード戦略は document.readyState を問い合わせます。
戦略 | Ready State | 注釈 |
---|---|---|
normal | complete | デフォルトで使用され、すべてのリソースがダウンロードされるまで待機します |
eager | interactive | DOMアクセスの準備はできていますが、画像などの他のリソースがまだ読み込まれている可能性があります |
none | Any | WebDriverをまったくブロックしません |
これにより、リモートエンドのオペレーティングシステムが識別され、 platformName
を取得するとOS名が返されます。
クラウドベースのプロバイダーでは、 platformName
を設定すると、リモートエンドのOSが設定されます。
この機能は、セッション中のナビゲーション中に、期限切れ(または)無効な TLS証明書
が使用されているかどうかを確認します。
機能が false
に設定されている場合、ナビゲーションでドメイン証明書の問題が発生すると、
insecure certificate error が返されます。
true
に設定すると、無効な証明書はブラウザーによって信頼されます。
すべての自己署名証明書は、デフォルトでこの機能によって信頼されます。
一度設定すると、 acceptInsecureCerts
Capabilityはセッション全体に影響します。
WebDriverの セッション
には特定の セッションタイムアウト
間隔が設定されており、
その間、ユーザーはスクリプトの実行またはブラウザーからの情報の取得の動作を制御できます。
各セッションタイムアウトは、以下で説明するように、異なる タイムアウト
の組み合わせで構成されます。
現在のブラウジングコンテキストで実行中のスクリプトをいつ中断するかを指定します。 新しいセッションがWebDriverによって作成されると、デフォルトのタイムアウト 30,000 が課されます。
現在のブラウジングコンテキストでWebページをロードする必要がある時間間隔を指定します。 新しいセッションがWebDriverによって作成されると、デフォルトのタイムアウト 300,000 が課されます。 ページの読み込みが指定/デフォルトの時間枠を制限する場合、スクリプトは TimeoutException によって停止されます。
これは、要素を検索するときに暗黙的な要素の検索戦略を待つ時間を指定します。 新しいセッションがWebDriverによって作成されると、デフォルトのタイムアウト 0 が課されます。
現在のセッションの ユーザープロンプトハンドラー
の状態を指定します。
デフォルトでは、 dismiss and notify (却下して通知する) 状態 となります。
これは、リモートエンドでユーザープロンプトが表示されたときに実行する必要があるアクションを定義します。
これは、 unhandledPromptBehavior
Capabilityによって定義され、次の状態があります。
このコマンドは、現在のブラウジングコンテキストウィンドウのサイズと位置を変更します。
このコマンドは、幅 、高さ、x、yを 任意 の引数として受け取る
getWindowRect
コマンドのセッターとして機能します。
自動化中、現在のブラウジングコンテキストは、 ブラウザーウィンドウの可視状態を表すウィンドウ状態に関連付けられます。 ウィンドウ状態は、以下です。
幅 または 高さ を設定しても、結果のウィンドウサイズが要求されたものと
正確に一致することを保証しません。
これは、一部のドライバはシングルピクセル単位でサイズ変更できない場合があるからです。
このため、 getWindowRect
でウィンドウの状態/詳細を取得しても、
ブラウザーに設定された値と等しく一致しない場合があります。
この新しいcapabilitiyは、厳密な相互作用チェックを input type = file 要素に適用する必要があるかどうかを示します。 厳密な相互作用チェックはデフォルトでオフになっているため、隠しファイルのアップロードコントロールで Element Send Keys を使用する場合の動作が変更されます。