このドキュメントは、Syntheticsモニターバージョン0.5.0および0.6.0で使用できるスクリプト化ブラウザ関数について説明します。新しいバージョンのモニターを使用している場合は、モニターバージョンChrome 100以降のドキュメントをご覧ください。以前のバージョンのモニターを使用している場合は、モニターバージョン0.4.0以前のドキュメントをご覧ください。
モニターのバージョンおよびランタイムの違いについては、「ランタイム環境」をご覧ください。
重要
2024年8月26日以降、パブリックロケーションまたはプライベートロケーションでレガシーランタイムを使用して新しいモニターを作成することはできなくなります。
2024年10月22日をもって、コンテナ化されたプライベートミニオン(1分間あたりの呼出し回数)とレガシーsyntheticランタイムバージョンのサポートを終了します。 パブリックロケーションの場合は、ランタイムアップグレードUIを使用して、モニターを最新のランタイムに更新します。 プライベートロケーションの場合、モニターの低下を回避するために推奨する移行手順を確認してください。
Chrome 100+ ブラウザランタイムは、0.5.0および0.6.0の下位互換性サポートを提供します。ブラウザランタイム構文。
一般的な使用例については、スクリプト化ブラウザモニターの概要を参照してください。
Selenium Webdriver API
変数 $driver
と $browser
を使用することにより、スクリプト化されたブラウザは、モニターバージョン0.6.xでSeleniumウェブドライバAPI 3.6.0、またモニターバージョン0.5.xでSeleniumウェブドライバAPI 3.5.0にアクセスできます。
特に:
$driver
selenium-webdriver
モジュールからのすべてのエクスポートを提供します(ActionSequence
、Button
、By
、WebElement
など)。$browser
はselenium-webdriver.WebDriver()
の合成モニタリングインスタンスです。get()
やfindElement()
といった主な基本WebDriver
APIのほか、一部のSyntheticsカスタムAPIを公開します。
最上位関数:スクリプトの作成
New Relicは、$browser
インスタンスから最上位関数を直接呼び出します。これらは、多数の基本的なスクリプト可能なアクションに対応する幅広い機能を提供します。
機能 | 説明 |
---|---|
| このドライバを使用して、新しいアクションシーケンスを作成します。使用可能なアクションのリストについては、「ActionSequence」をご覧ください。 戻り値:void |
| 値 戻り値:void |
| ヘッダのマップをランタイムに追加します。 戻り値:void |
| 特定のヘッダをランタイムから削除します。 戻り値:void |
| 引数のすべてのヘッダをランタイムから削除します。 戻り値:void |
| ホスト名を拒否リストに追加します。wildcardsの使用が許可されます。 戻り値:void |
| 引数の配列のすべてのホスト名を拒否リストに追加します。wildcardsの使用が許可されます。 戻り値:void |
| Syntheticsモニタリングにおいてデフォルトでブロックされているホスト名を許可リストに追加します。 戻り値:void |
| 引数のすべてのホスト名を許可リストに追加します。 戻り値:void |
| このブラウザのインスタンスのホスト名を拒否リストから削除します。 戻り値:void |
| 引数のすべてのホスト名を拒否リストから削除します。 戻り値:void |
| このブラウザのインスタンスのホスト名を許可リストから削除します。 戻り値:void |
| 引数のすべてのホスト名をこのブラウザのインスタンスの許可リストから削除します。 戻り値:void |
| 現在選択されているフレームまたはウィンドウのコンテキストで、非同期JavaScriptを実行するコマンドをスケジュールします。 戻り値:promise |
| 現在選択されているフレームまたはウィンドウのコンテキストで、JavaScriptを実行するコマンドをスケジュールします。 戻り値:promise |
| ページ上の要素を検索するコマンドをスケジュールします。見つからなかった場合、Syntheticsモニタリングはエラーを返します。 戻り値:WebElementPromise |
| ページ上の複数の要素を検索するコマンドをスケジュールします。 戻り値:promise |
| 待機させるコマンドをスケジュールしてページ内で要素を見つけると、それを待機させる別のコマンドが表示されます。見つからなかった場合、Syntheticsモニタリングはエラーを返します。 タイムアウト値はオプションです。要素の発見と表示の待機の両タスクに別々に適用されます。最悪の場合、このやり方では、提供されたタイムアウト値の2倍の時間を要する可能性があります。デフォルトのタイムアウト値は、1000 ms(1秒)です。 戻り値:WebElementPromise |
| Syntheticsブラウザでウェブページをロードします。 戻り値:promise |
| 使用可能なウィンドウハンドルの最新リストを取得するコマンドをスケジュールします。 戻り値:promise |
| インスタンスの機能を使って解決するpromise。 戻り値:promise |
| 現在のページのURLを取得するコマンドをスケジュールします。 戻り値:promise |
| 現在設定されているヘッダのマップを返します。 戻り値:map |
| 現在のページソースを取得するコマンドをスケジュールします。返されるページソースは、基盤となるDOMの表現です。Webサーバーから応答が返される場合と同様に書式化またはエスケープされることを期待しないでください。 戻り値:promise |
| このクライアントのセッションのpromise。 戻り値:promise |
| 現在のページのタイトルを取得するコマンドをスケジュールします。 戻り値:promise |
| 現在のウィンドウハンドルを取得するコマンドをスケジュールします。 戻り値:promise |
| このインスタンスのオプションのインタフェース。クッキー、タイムアウト、その他のウィンドウオプションを管理できます。 戻り値:void |
| このインスタンスのナビゲーションインタフェース(ブラウザ関数の履歴)。 戻り値:void |
| このドライバの 戻り値:promise |
| 指定された期間、ドライバをスリープ状態にするコマンドをスケジュールします。 戻り値:promise |
| このインスタンスのターゲットロケーターのインタフェース。 戻り値:void |
| スクリーンショットを撮るコマンドをスケジュールします。 戻り値:promise |
| ユーザー提供の関数の定義どおりに、条件が保持されるまで待機するコマンドをスケジュールします。 戻り値:WebElement |
| 開始されたリクエストがタイムアウトまでに戻るまでスクリプトを待機させます。ノンブロッキングリソースの追跡に役立ちます。 戻り値:promise |
拒否リスト:ワイルドカードの使用
ドメインをブラウザインスタンスの拒否リストに追加したい場合、ブロックされるURLのURL構文にワイルドカードが一致しなければなりません。
包括的な.com
拒否リストには以下の関数が含まれなければなりません。
機能 | ブロッキングアクション |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
オプション:ブラウザインスタンスを管理する
以下の関数は、クッキー、タイムアウト、ウィンドウサイズなどのブラウザインスタンスのオプションを管理します。$browser.manage()
関数を使用してこれらのオプションにアクセスします。
機能 | 説明 |
---|---|
| クッキーを追加するコマンドをスケジュールします。
戻り値:promise |
| 現在のページに表示されているすべてのクッキーを削除するコマンドをスケジュールします。 戻り値:promise |
| 指定された名前のクッキーを削除するコマンドをスケジュールします。指定された名前のクッキーが現在のページに表示されていない場合、このコマンドはno-opです。 戻り値:promise |
| 指定された名前のクッキーを取得するコマンドをスケジュールします。そのようなクッキーがない場合は、nullを返します。クッキーは、WebDriverワイヤプロトコルによって記述されているように、JSONオブジェクトとして返されます。 戻り値:promise |
| 現在のページに表示されているすべてのクッキーを取得するコマンドをスケジュールします。New Relic Syntheticcsは、WebDriverワイヤプロトコルによって記述されているように、各クッキーをJSONオブジェクトとして返します。 戻り値:promise |
| 要素を検索する際に、その時点でその要素が存在しない場合、ドライバが待機する必要がある時間を指定します。待機タイムアウトを 特にXPathのような時間を要するロケーション戦略では、テストランタイムが長くなるため、待機タイムアウトを増加する際は注意してください。デフォルトは10秒です。 戻り値:promise |
| エラーを返す前に、ページロードが完了するまで待機する時間を設定します。タイムアウト値が負の場合、ページロードは最大180秒継続する可能性があります。デフォルトは60秒です。 戻り値:promise |
| エラーを返す前に、非同期スクリプトの実行が完了するまで待機する時間をミリ秒単位で設定します。デフォルトは30秒です。 戻り値:promise |
| 画面の左上隅に相対的なウィンドウの現在の位置を取得します。 戻り値:promise |
| ウィンドウの現在のサイズを取得します。 戻り値:promise |
| 現在のウィンドウを最大化します。 戻り値:promise |
| 現在のウィンドウの位置を変更します。 戻り値:promise |
| 現在のウィンドウのサイズを変更します。 戻り値:promise |
ロケーター: ページ要素の検索
ロケーターは、locator
インスタンスを作成するためのファクトリ関数の集合です。ロケーターは、$browser.findElement
などの関数に渡すことができるDOM要素を検索します。$driver.By
からそれらを呼び出します。
機能 | 説明 |
---|---|
| 特定のクラス名を持つ要素を特定します。返されるロケーターは、CSSセレクタ 戻り値:ロケーター |
| CSSセレクタを使って、要素を特定します。 戻り値:ロケーター |
| IDで要素を特定します。 戻り値:ロケーター |
| 表示されているテキストが指定された文字列と一致するリンク要素を特定します。 戻り値:ロケーター |
| JavaScript式を評価して要素を特定します。 戻り値:ロケーター |
| name属性に指定された値が含まれている要素を特定します。 戻り値:ロケーター |
| 表示されているgetTextに指定された部分文字列が含まれているリンク要素を特定します。 戻り値:ロケーター |
| 指定されたタグ名を持つ要素を特定します。返されるロケーターは、 戻り値:ロケーター |
| XPathセレクタに一致する要素を特定します。 戻り値:ロケーター |
WebElement:ページ要素とのインタラクション
$browser.findElement
や$browser.waitForAndFindElement
などの関数がWebElementリファレンスを返す場合は、これらの関数を使って、その要素を操作できます。たとえば、ボタンをクリックし、テキストを送信して入力を書式設定し、テストする要素の属性を取得します。
機能 | 説明 |
---|---|
| この要素をクリックします。 戻り値:自己参照 |
| このインスタンスで表されるDOM要素のシーケンスを入力するコマンドをスケジュールします。 戻り値:WebElement |
| この要素のタグ/ノード名をクエリするコマンドをスケジュールします。 戻り値:WebElement |
| このインスタンスで表される要素の計算されたスタイルをクエリするコマンドをスケジュールします。要素が指定されたスタイルをその親から継承する場合、その値のクエリはその親に対して実行されます。可能な場合、色の値は16進数表現に変換されます(例: 戻り値:promise |
| 要素の指定された属性の値をクエリするコマンドをスケジュールします。 戻り値:promise |
| 先頭と末尾の空白を除いて、部分要素を含め、この要素の表示されている(CSSで非表示にされていない) 戻り値:promise |
| この要素の境界ボックスのサイズをピクセル単位で計算するコマンドをスケジュールします。 戻り値:promise |
| この要素のページスペースでの位置を計算するコマンドをスケジュールします。 戻り値:promise |
| このインスタンスで表されるDOM要素が、無効な属性によって決定されたとおりに有効化されているかどうかをクエリするコマンドをスケジュールします。 戻り値:promise |
| この要素が選択されているかどうかをクエリするコマンドをスケジュールします。 戻り値:promise |
| この要素(または、 戻り値:promise |
| この要素の値をクリアするコマンドをスケジュールします。 戻り値:promise |
| この要素が現在表示されているかどうかをテストするコマンドをスケジュールします。 戻り値:promise |
ActionSequence:複数のアクションをリンク
アクションシーケンスを使用すると、Webサイトとの複雑なユーザーインタラクションを作成できます。
- 新しいアクションシーケンスを作成するには、
$browser.actions()
を使用します。 - 複数のアクションを1つのシーケンスにリンクするには、それぞれのアクションの後に
perform()
を含めます。これにより、シングルアクションのシーケンスを含む個々のシーケンスが実行された後、終了されます。
以下の表は、利用可能なアクションのリストを示しています。詳細については、GitHubのWebDriver ActionSequenceに関するドキュメントをご覧ください。
機能 | 説明 |
---|---|
| マウスボタンをクリックします。要素が指定されている場合、マウスは最初にその要素の中央に移動します。これは 戻り値:actionsequence |
| マウスボタンをダブルクリックします。要素が指定されている場合、マウスは最初にその要素の中央に移動します。 戻り値:actionsequence |
| 「ドラッグ&ドロップ」操作を実行する便利な関数。ターゲット要素は、別の要素の位置に移動するか、オフセット(ピクセル単位)で移動することができます。この位置は、2つのプロパティ 戻り値:actionsequence |
| 修飾キーを押します。 戻り値:actionsequence |
| 修飾キーをリリースします。リリースは、現在フォーカスされている要素をターゲットにします。 戻り値:actionsequence |
| マウスボタンを押します。マウスボタンは、 戻り値:actionsequence |
| マウスボタンをリリースします。この関数の呼び出しに対する動作は、 戻り値:actionsequence |
| マウスを移動します。移動する位置は、マウスの現在の位置、要素の左上隅に相対的なオフセット、または要素(この場合は要素の中央が使用される) の観点から指定できます。 戻り値:actionsequence |
| このアクションシーケンスを実行します。 戻り値:promise |
| 複数のキーの入力をシミュレートします。このシーケンス中に修飾キーがあった場合、それぞれ、その修飾キーが再度現れるまでリリースされません。すべてのキーイベントは、現在フォーカスされている要素をターゲットにします。サポートされている英数字以外のキーの全リストについては、GitHubのWebDriver enumキーのドキュメントをご覧ください。 戻り値:actionsequence |
Promise:アクションをシーケンスにリンクする
関数をpromiseで直接実行することもできます。Syntheticsモニタリングは、ネイティブのNode.js環境であり、標準的なNode.jsのpromiseを使用します。
これらの関数は、promiseのステータスの評価やpromiseのキャンセルなどを行います。具体的には、then()
関数とその兄弟関数finally()
とcatch()
を使用して、アクションシーケンスを作成できます。とのアクションのシーケンスを作成できます。詳細については、「シーケンスアクション」をご覧ください。
機能 | 説明 |
---|---|
| このpromiseの値がまだ計算中であるかどうか。 戻り値:ブール値 |
| このインスタンスが解決されたときのためのリスナーを登録します。これは、スクリプトで同期アクションをリンクするために使用される基本的な関数です。 戻り値:promise |
| このpromiseが解決されたときに呼び出すリスナーを登録します。promiseの値が正常に計算されたかどうかは関係ありません。 戻り値:promise |
| このpromiseが拒否されたときのためのリスナーを登録します。 戻り値:promise |
Navigate:ブラウザの履歴を移動する
$browser.navigate()
関数は、ブラウザの履歴を前後に移動したり、ページを更新したり、新しいページに移動したりするためのさまざまな関数を提供します。
機能 | 説明 |
---|---|
| ブラウザの履歴を1つ前に戻します。 戻り値:void |
| ブラウザの履歴を1つ先に進めます。 戻り値:void |
| 現在のページを更新します。 戻り値:void |
| 現在のブラウザウィンドウで新しいウェブページを読み込みます。 戻り値:void |
Conditions:一時停止と条件待ち
ヒント
Seleniumでの待機の詳細については、こちらでご確認ください。
$browser.wait
と使用すると、until
は条件が一致するまで、スクリプトの実行を一時停止します。詳細については、SeleniumのWebDriver until
のドキュメントを参照してください。
$driver.until.Condition
に対して利用可能な関数:
機能 | 説明 |
---|---|
| 入力ドライバが指定されたフレームに切り替えることができるまで待機する条件を作成します。ターゲットフレームは、次のように指定できます。
|
| アラートがオープンされるのを待機する条件を作成します。処理が正常に完了したら、返されるpromiseはオープンされたアラートのハンドルで実行されます。 戻り値:条件 |
| 指定された要素が無効になるまで待機する条件を作成します。 戻り値:条件 |
| 指定された要素が有効になるまで待機する条件を作成します。 戻り値:条件 |
| 指定された要素がユーザーには表示されないが、DOMに現れるまで待機する条件を作成します。 戻り値:条件 |
| 指定された要素が表示されるまで待機する条件を作成します。 戻り値:条件 |
| 指定された要素が選択されるまで待機する条件を作成します。 戻り値:条件 |
| 要素が指定されたロケーターで見つかるまでループする条件を作成します。 戻り値:条件 |
| 少なくとも1つの要素が指定されたロケーターで見つかるまでループする条件を作成します。 戻り値:条件 n |
| 指定された要素の表示されているテキストに指定された部分文字列が含まれるまで待機する条件を作成します。 戻り値:条件 |
| 大文字と小文字が区別されます。指定された要素の表示されているテキストが指定されたテキストに正確に一致するまで待機する条件を作成します。 戻り値:条件 n |
| 指定された要素の表示されているテキストが正規表現に一致するまで待機する条件を作成します。 戻り値:条件 |
| 指定された要素が古くなるまで待機する条件を作成します。要素はDOMから削除された時点で、または新しいページがロードされた時点で、古くなったとみなされます。 戻り値:条件 |
| 現在のページのタイトルに指定された部分文字列が含まれるまで待機する条件を作成します。 戻り値:条件 |
| 現在のページのタイトルが指定された値に一致するまで待機する条件を作成します。 戻り値:条件 |
| 現在のページのタイトルが指定された正規表現と一致するまで待機する条件を作成します。 戻り値:条件 |