• /
  • ログイン
  • 無料アカウント

Syntheticsのスクリプト化ブラウザリファレンス (モニターバージョン0.5.0+)

このドキュメントは、Syntheticsモニターバージョン0.5.x以降で使用できるスクリプト化ブラウザ関数について説明します。以前のバージョンのモニターを使用している場合は、モニターバージョン0.4.0以前のドキュメントをご覧ください。

モニターのバージョンおよびランタイムの違いについては、「ランタイム環境」をご覧ください。

Selenium Webdriver API

Syntheticsスクリプト化ブラウザは、Selenium Webdriver APIs 3.6.0へのアクセスを提供します:モニタバージョン0.6.xおよびSelenium Webdriver API 3.5.0の場合 モニタバージョン0.5.xの場合(変数$driverおよび$browser経由で)。

特に:

  • $driverは、selenium-webdriverモジュールからのすべてのエクスポートを提供します(たとえば、ActionSequenceButtonByWebElementなど)。
  • $browserは、selenium-webdriver.WebDriver()のSyntheticsモニタリングのインスタンスです。get()findElement()といった主な基本WebDriver APIのほか、一部のSyntheticsカスタムAPIを公開します。

最上位関数:スクリプトの作成

New Relicは、$browserインスタンスから最上位関数を直接呼び出します。これらは、多数の基本的なスクリプト可能なアクションに対応する幅広い機能を提供します。

機能

説明

$browser.actions()

このドライバを使用して、新しいアクションシーケンスを作成します。使用可能なアクションのリストについては、「ActionSequence」をご覧ください。

戻り値:void

$browser.addHeader(headerKey: string, headerValue: string)

ランタイムに値headerValueを含むヘッダheaderKeyを追加します。

戻り値:void

$browser.addHeaders(headers: ?)

ヘッダのマップをランタイムに追加します。

戻り値:void

$browser.deleteHeader(header: string)

特定のヘッダをランタイムから削除します。

戻り値:void

$browser.deleteHeaders(header: [string])

引数のすべてのヘッダをランタイムから削除します。

戻り値:void

$browser.addHostnameToBlacklist(hostname: string)

ホスト名を拒否リストに追加します。wildcardsの使用が許可されます。

戻り値:void

$browser.addHostnamesToBlacklist(hostnameArr: [string])

引数の配列のすべてのホスト名を拒否リストに追加します。wildcardsの使用が許可されます。

戻り値:void

$browser.addHostnameToWhitelist(hostname: string)

Syntheticsモニタリングにおいてデフォルトでブロックされているホスト名を許可リストに追加します。

戻り値:void

$browser.addHostnamesToWhitelist(hostnameArr: [string])

引数のすべてのホスト名を許可リストに追加します。

戻り値:void

$browser.deleteHostnameFromBlacklist(hostname: string)

このブラウザのインスタンスのホスト名を拒否リストから削除します。

戻り値:void

$browser.deleteHostnamesFromBlacklist(hostnameArr: [string])

引数のすべてのホスト名を拒否リストから削除します。

戻り値:void

$browser.deleteHostnameFromWhitelist(hostnameArr: [string])

このブラウザのインスタンスのホスト名を許可リストから削除します。

戻り値:void

$browser.deleteHostnamesFromWhitelist(hostnameArr: [string])

引数のすべてのホスト名をこのブラウザのインスタンスの許可リストから削除します。

戻り値:void

$browser.executeAsyncScript(script: ?, var_args: ?)

現在選択されているフレームまたはウィンドウのコンテキストで、非同期JavaScriptを実行するコマンドをスケジュールします。

戻り値:promise

$browser.executeScript(script: ?, var_args: ?)

現在選択されているフレームまたはウィンドウのコンテキストで、JavaScriptを実行するコマンドをスケジュールします。

戻り値:promise

$browser.findElement(locator: $driver.Locator)

ページ上の要素を検索するコマンドをスケジュールします。見つからなかった場合、Syntheticsモニタリングはエラーを返します。

戻り値:WebElementPromise

$browser.findElements(locator: $driver.Locator)

ページ上の複数の要素を検索するコマンドをスケジュールします。

戻り値:promise

$browser.waitForAndFindElement(locator:$driver.Locator [, timeout: number)

待機させるコマンドをスケジュールしてページ内で要素を見つけると、それを待機させる別のコマンドが表示されます。見つからなかった場合、Syntheticsモニタリングはエラーを返します。

タイムアウト値はオプションです。要素の発見と表示の待機の両タスクに別々に適用されます。最悪の場合、このやり方では、提供されたタイムアウト値の2倍の時間を要する可能性があります。デフォルトのタイムアウト値は、1000 ms(1秒)です。

戻り値:WebElementPromise

$browser.get(url: string)

Syntheticsブラウザでウェブページをロードします。

戻り値:promise

$browser.getAllWindowHandles()

使用可能なウィンドウハンドルの最新リストを取得するコマンドをスケジュールします。

戻り値:promise

$browser.getCapabilities()

インスタンスの機能を使って解決するpromise。

戻り値:promise

$browser.getCurrentUrl()

現在のページのURLを取得するコマンドをスケジュールします。

戻り値:promise

$browser.getHeaders()

現在設定されているヘッダのマップを返します。

戻り値:map

$browser.getPageSource()

現在のページソースを取得するコマンドをスケジュールします。返されるページソースは、基盤となるDOMの表現です。Webサーバーから応答が返される場合と同様に書式化またはエスケープされることを期待しないでください。

戻り値:promise

$browser.getSession()

このクライアントのセッションのpromise。

戻り値:promise

$browser.getTitle()

現在のページのタイトルを取得するコマンドをスケジュールします。

戻り値:promise

$browser.getWindowHandle()

現在のウィンドウハンドルを取得するコマンドをスケジュールします。

戻り値:promise

$browser.manage()

このインスタンスのオプションのインタフェース。クッキー、タイムアウト、その他のウィンドウオプションを管理できます。

戻り値:void

$browser.navigate()

このインスタンスのナビゲーションインタフェース(ブラウザ関数の履歴)

戻り値:void

$browser.schedule(command: ?, description: string)

このドライバのCommandExecutorによって実行されるコマンドをスケジュールします。

戻り値:promise

$browser.sleep()

指定された期間、ドライバをスリープ状態にするコマンドをスケジュールします。

戻り値:promise

$browser.switchTo()

このインスタンスのターゲットロケーターのインタフェース。

戻り値:void

$browser.takeScreenshot()

スクリーンショットを撮るコマンドをスケジュールします。

戻り値:promise

$browser.wait(fn: $driver.Condition、timeout: number、opt_message: string)

ユーザー提供の関数の定義どおりに、条件が保持されるまで待機するコマンドをスケジュールします。

戻り値:WebElement

$browser.waitForPendingRequests(timeout: number)

開始されたリクエストがタイムアウトまでに戻るまでスクリプトを待機させます。ノンブロッキングリソースの追跡に役立ちます。

戻り値:promise

拒否リスト:ワイルドカードの使用

ドメインをブラウザインスタンスの拒否リストに追加したい場合、ブロックされるURLのURL構文にワイルドカードが一致しなければなりません。

包括的な.com 拒否リストには以下の関数が含まれなければなりません。

機能

ブロッキングアクション

$browser.addHostnameToBlacklist('*.com');

a.com

$browser.addHostnameToBlacklist('*.*.com');

a.b.com

$browser.addHostnameToBlacklist('*.*.*.com');

a.b.c.com

$browser.addHostnameToBlacklist('www.*.com');

www.a.com

$browser.addHostnameToBlacklist('www.*.*.com');

www.a.b.com

$browser.addHostnameToBlacklist('www.*.*.*.com');

www.a.b.c.com

オプション:ブラウザインスタンスを管理する

以下の関数は、クッキー、タイムアウト、ウィンドウサイズなどのブラウザインスタンスのオプションを管理します。$browser.manage()関数を通して、これらのオプションにアクセスします。

機能

説明

$browser.manage().addCookie(spec: object)

クッキーを追加するコマンドをスケジュールします。

specは、ブラウザクッキーを記述するレコードオブジェクトです。詳しくは、Seleniumのドキュメントを参照してください。

戻り値:promise

$browser.manage().deleteAllCookies()

現在のページに表示されているすべてのクッキーを削除するコマンドをスケジュールします。

戻り値:promise

$browser.manage().deleteCookie(name: string)

指定された名前のクッキーを削除するコマンドをスケジュールします。指定された名前のクッキーが現在のページに表示されていない場合、このコマンドはno-opです。

戻り値:promise

$browser.manage().getCookie(name: string)

指定された名前のクッキーを取得するコマンドをスケジュールします。そのようなクッキーがない場合は、nullを返します。クッキーは、WebDriverワイヤプロトコルによって記述されているように、JSONオブジェクトとして返されます。

戻り値:promise

$browser.manage().getCookies()

現在のページに表示されているすべてのクッキーを取得するコマンドをスケジュールします。New Relic Syntheticcsは、WebDriverワイヤプロトコルによって記述されているように、各クッキーをJSONオブジェクトとして返します。

戻り値:promise

$browser.manage().timeouts().implicitlyWait(ms: number)

要素を検索する際に、その時点でその要素が存在しない場合、ドライバが待機する必要がある時間を指定します。待機タイムアウトを0に設定すると、暗黙的な待機が無効になります。

特にXPathのような時間を要するロケーション戦略では、テストランタイムが長くなるため、待機タイムアウトを増加する際は注意してください。デフォルトは10秒です。

戻り値:promise

$browser.manage().timeouts().pageLoadTimeout(ms: number)

エラーを返す前に、ページロードが完了するまで待機する時間を設定します。タイムアウト値が負の場合、ページロードは最大180秒継続する可能性があります。デフォルトは60秒です。

戻り値:promise

$browser.manage().timeouts().setScriptTimeout(ms: number)

エラーを返す前に、非同期スクリプトの実行が完了するまで待機する時間をミリ秒単位で設定します。デフォルトは30秒です。

戻り値:promise

$browser.manage().window().getPosition()

画面の左上隅に相対的なウィンドウの現在の位置を取得します。

戻り値:promise

$browser.manage().window().getSize()

ウィンドウの現在のサイズを取得します。

戻り値:promise

$browser.manage().window().maximize()

現在のウィンドウを最大化します。

戻り値:promise

$browser.manage().window().setPosition(x: number, y: number)

現在のウィンドウの位置を変更します。

戻り値:promise

$browser.manage().window().setSize(width: number, height: number)

現在のウィンドウのサイズを変更します。

戻り値:promise

ロケーター: ページ要素の検索

ロケーターは、locatorインスタンスを作成するためのファクトリ関数の集合です。ロケーターは、$browser.findElementなどの関数に渡すことができるDOM要素を見つけます。$driver.Byを使用して、これらを呼び出します。

機能

説明

$driver.By.className(className: string)

特定のクラス名を持つ要素を特定します。返されるロケーターは、CSSセレクタ.clazzで要素を検索した場合と同様です。

戻り値:ロケーター

$driver.By.css(cssName: string)

CSSセレクタを使って、要素を特定します。

戻り値:ロケーター

$driver.By.id(id: string)

IDで要素を特定します。

戻り値:ロケーター

$driver.By.linkText(linkText: string)

表示されているテキストが指定された文字列と一致するリンク要素を特定します。

戻り値:ロケーター

$driver.By.js(js: string)

JavaScript式を評価して要素を特定します。

戻り値:ロケーター

$driver.By.name(name: string)

name属性に指定された値が含まれている要素を特定します。

戻り値:ロケーター

$driver.By.partialLinkText(partialLinkText: string)

表示されているgetTextに指定された部分文字列が含まれているリンク要素を特定します。

戻り値:ロケーター

$driver.By.tagName(tagName: string)

指定されたタグ名を持つ要素を特定します。返されるロケーターは、getElementsByTagName DOM関数を使用した場合と同様です。

戻り値:ロケーター

$driver.By.xpath(xpath: string)

XPathセレクタに一致する要素を特定します。

戻り値:ロケーター

WebElement:ページ要素とのインタラクション

$browser.findElementまたは$browser.waitForAndFindElementなどの関数によってWebElementリファレンスが返された場合は、これらの関数を使って、その要素を操作できます。たとえば、ボタンをクリックし、テキストを送信して入力を書式設定し、テストする要素の属性を取得します。

機能

説明

click()

この要素をクリックします。

戻り値:自己参照

sendKeys(var_args: ?)

このインスタンスで表されるDOM要素のシーケンスを入力するコマンドをスケジュールします。

戻り値:WebElement

getTagName()

この要素のタグ/ノード名をクエリするコマンドをスケジュールします。

戻り値:WebElement

getCssValue(name: string)

このインスタンスで表される要素の計算されたスタイルをクエリするコマンドをスケジュールします。要素が指定されたスタイルをその親から継承する場合、その値のクエリはその親に対して実行されます。可能な場合、色の値は16進数表現に変換されます(例:rgb(0, 255, 0)の代わりに#00ff00)。

戻り値:promise

getAttribute(name: string)

要素の指定された属性の値をクエリするコマンドをスケジュールします。

戻り値:promise

getText(name: string)

先頭と末尾の空白を除いて、部分要素を含め、この要素の表示されている(CSSで非表示にされていない)innerTextを取得します。

戻り値:promise

getSize()

この要素の境界ボックスのサイズをピクセル単位で計算するコマンドをスケジュールします。

戻り値:promise

getLocation()

この要素のページスペースでの位置を計算するコマンドをスケジュールします。

戻り値:promise

isEnabled()

このインスタンスで表されるDOM要素が、無効な属性によって決定されたとおりに有効化されているかどうかをクエリするコマンドをスケジュールします。

戻り値:promise

isSelected()

この要素が選択されているかどうかをクエリするコマンドをスケジュールします。

戻り値:promise

submit()

この要素(または、FORM要素の場合はこの要素)を含むフォームを送信するコマンドをスケジュールします。このコマンドは、要素がフォームに含まれていない場合はno-opです。

戻り値:promise

clear()

この要素の値をクリアするコマンドをスケジュールします。

戻り値:promise

isDisplayed()

この要素が現在表示されているかどうかをテストするコマンドをスケジュールします。

戻り値:promise

ActionSequence:複数のアクションをリンク

アクションシーケンスを使用すると、Webサイトとの複雑なユーザーインタラクションを作成できます。

  • アクションシーケンスを作成するには、$browser.actions()を使用します。
  • 複数のアクションを1つのシーケンスにリンクするには、それぞれのアクションの後にperform()を含めます。これにより、シングルアクションのシーケンスを含む個々のシーケンスが実行された後、終了されます。

以下の表は、利用可能なアクションのリストを示しています。詳細については、GitHubのWebDriver ActionSequenceに関するドキュメントをご覧ください。

機能

説明

click(opt_elementOrButton: ?, opt_button: ?)

マウスボタンをクリックします。要素が指定されている場合、マウスは最初にその要素の中央に移動します。これは、WebElement.click()を使用した場合と同様です。

戻り値:actionsequence

doubleClick(opt_elementOrButton: ?, opt_button: ?)

マウスボタンをダブルクリックします。要素が指定されている場合、マウスは最初にその要素の中央に移動します。

戻り値:actionsequence

dragAndDrop(element: ?, location: ?)

「ドラッグ&ドロップ」操作を実行する便利な関数。ターゲット要素は、別の要素の位置に移動するか、オフセット(ピクセル単位)で移動することができます。この位置は、2つのプロパティxy{x: x_offset, y: y_offset}を含むオブジェクトです。

戻り値:actionsequence

keyDown(key: ?)

修飾キーを押します。ALTCONTROLSHIFTCOMMAND、またはMETAのいずれかである必要があります。修飾キーはkeyUp()またはsendKeys()が呼び出されるまでリリースされません。キー押しは、現在フォーカスされている要素をターゲットにします。

戻り値:actionsequence

keyUp(key: ?)

修飾キーをリリースします。リリースは、現在フォーカスされている要素をターゲットにします。

戻り値:actionsequence

mouseDown(opt_elementOrButton: ?、opt_button: ?)

マウスボタンを押します。マウスボタンは、mouseUpが呼び出されるまでは、そのコールがこのシーケンスか別のシーケンスで実行されるかにかかわらずリリースされません。不適切なシーケンスのイベントの動作(ボタンがすでに押されている状態でmouseDown()またはclick()を呼び出すなど)は定義されません。

戻り値:actionsequence

mouseUp(opt_elementOrButton: ?, opt_button: ?)

マウスボタンをリリースします。この関数の呼び出しに対する動作は、mouseDown()の前回の呼び出しなしでは定義されません。

戻り値:actionsequence

mouseMove(location: ?, offset: ?)

マウスを移動します。移動する位置は、マウスの現在の位置、要素の左上隅に相対的なオフセット、または要素(この場合は要素の中央が使用される) の観点から指定できます。

戻り値:actionsequence

perform()

このアクションシーケンスを実行します。

戻り値:promise

sendKeys(args: ?)

複数のキーの入力をシミュレートします。このシーケンス中に修飾キーがあった場合、それぞれ、その修飾キーが再度現れるまでリリースされません。すべてのキーイベントは、現在フォーカスされている要素をターゲットにします。サポートされている英数字以外のキーの全リストについては、GitHubのWebDriver enumキーのドキュメントをご覧ください。

戻り値:actionsequence

Promise:アクションをシーケンスにリンクする

関数をpromiseで直接実行することもできます。Syntheticsモニタリングは、ネイティブのNode.js環境であり、標準的なNode.jsのpromiseを使用します。

これらの関数は、promiseのステータスの評価やpromiseのキャンセルなどを行います。具体的には、then()関数とその兄弟関数finally()catch()を使用して、アクションシーケンスを作成できます。とのアクションのシーケンスを作成できます。詳細については、「シーケンスアクション」をご覧ください。

機能

説明

isPending()

このpromiseの値がまだ計算中であるかどうか。

戻り値:ブール値

then(opt_callback: fn(T: ?), opt_errback: fn())

このインスタンスが解決されたときのためのリスナーを登録します。これは、スクリプトで同期アクションをリンクするために使用される基本的な関数です。

戻り値:promise

finally(callback: fn())

このpromiseが解決されたときに呼び出すリスナーを登録します。promiseの値が正常に計算されたかどうかは関係ありません。

戻り値:promise

catch(callback: fn())

このpromiseが拒否されたときのためのリスナーを登録します。

戻り値:promise

Navigate:ブラウザの履歴を移動する

$browser.navigate()関数は、ブラウザの履歴を前後に移動したり、ページを更新したり、新しいページに移動したりするためのさまざまな関数を提供します。

機能

説明

Conditions:一時停止と条件待ち

ヒント

Seleniumでの待機の詳細については、こちらでご確認ください。

$browser.waitと使用すると、untilは条件が一致するまで、スクリプトの実行を一時停止します。詳細については、SeleniumのWebDriver untilのドキュメントを参照してください。

以下に示すのは、$driver.until.Conditionに使用できる関数です:

機能

説明

ableToSwitchToFrame(frame: ?)

入力ドライバが指定されたフレームに切り替えることができるまで待機する条件を作成します。ターゲットフレームは、次のように指定できます。

  • 現在のフレームに対するwindow.framesへの数値インデックス

  • 現在のページ上のFRAMEまたはIFRAME要素を参照する必要がある、webdriver.WebElement

  • そのフレームへの切り替えを試みる前に、最初に現在のページ上のFRAMEまたはIFRAMEを検索するのに使用できるロケーター。

    この状態が正常に解決されたら、ドライバは新しいフレームにフォーカスした状態のままになります。

    戻り値:条件

alertIsPresent()

アラートがオープンされるのを待機する条件を作成します。処理が正常に完了したら、返されるpromiseはオープンされたアラートのハンドルで実行されます。

戻り値:条件

elementIsDisabled(element: $driver.WebElement)

指定された要素が無効になるまで待機する条件を作成します。

戻り値:条件

elementIsEnabled(element: $driver.WebElement)

指定された要素が有効になるまで待機する条件を作成します。

戻り値:条件

elementIsNotVisible(element: $driver.WebElement)

指定された要素がユーザーには表示されないが、DOMに現れるまで待機する条件を作成します。

戻り値:条件

elementIsVisible(element: $driver.WebElement)

指定された要素が表示されるまで待機する条件を作成します。

戻り値:条件

elementIsSelected(element: $driver.WebElement)

指定された要素が選択されるまで待機する条件を作成します。

戻り値:条件

elementLocated(element: $driver.Locator)

要素が指定されたロケーターで見つかるまでループする条件を作成します。

戻り値:条件

elementsLocated(element: $driver.Locator)

少なくとも1つの要素が指定されたロケーターで見つかるまでループする条件を作成します。

戻り値:条件

n

elementTextContains(element: $driver.WebElement, substr: string)

指定された要素の表示されているテキストに指定された部分文字列が含まれるまで待機する条件を作成します。

戻り値:条件

elementTextIs(element: $driver.WebElement, text: string)

大文字と小文字が区別されます。指定された要素の表示されているテキストが指定されたテキストに正確に一致するまで待機する条件を作成します。

戻り値:条件

n

elementTextMatches(element: $driver.WebElement, regex: string)

指定された要素の表示されているテキストが正規表現に一致するまで待機する条件を作成します。

戻り値:条件

stalenessOf(element: $driver.WebElement)

指定された要素が古くなるまで待機する条件を作成します。要素はDOMから削除された時点で、または新しいページがロードされた時点で、古くなったとみなされます。

戻り値:条件

titleContains(substr: string)

現在のページのタイトルに指定された部分文字列が含まれるまで待機する条件を作成します。

戻り値:条件

titleIs(title: string)

現在のページのタイトルが指定された値に一致するまで待機する条件を作成します。

戻り値:条件

titleMatches(regex: string)

現在のページのタイトルが指定された正規表現と一致するまで待機する条件を作成します。

戻り値:条件

その他のヘルプ

さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください:

問題を作成する
Copyright © 2020 New Relic Inc.