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