• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

合成スクリプトによるブラウザの参照(モニターバージョン0.4.x以下)

このドキュメントは、合成モニターバージョン0.4.x以下を対象としています。 Syntheticモニターバージョン0.5または0.6.0およびモニターバージョンChrome100以降のドキュメントも参照してください。

概要

合成スクリプトブラウザを使用すると、変数$driverおよび$browserを介してSelenium WebdriverAPI2.47.0にアクセスできます。特に:

  • $driver selenium-webdriverモジュールからのすべてのエクスポートを提供します(たとえば、 ActionSequenceButtonByWebElementなど)。
  • $browserselenium-webdriver.WebDriver()の合成フレーバーのインスタンスです。 get()findElement()などの主要な基本的なWebDriver APIと、いくつかの合成カスタムAPIを公開しています。

本ドキュメントでは、合成スクリプト付きブラウザモニターのバージョン0.4.0以下で利用可能な機能について説明しています。最新のモニタードキュメントについては、 モニターバージョン0.5.0+ドキュメント をご覧ください。

その他の関連文書

  • シンセティック・スクリプティングについては、 Write scripted browsers をご覧ください。
  • スクリプトの例については、 Scripted browser examples をご覧ください。
  • モニターのバージョンとランタイムの違いについては、 ランタイム環境 を参照してください。
  • スクリプト化されたブラウザの例を見たり共有したりするには、New Relic の Explorers Hub で、 synthetic-script というタグの付いたトピックをチェックしてください。

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

New Relicは、 $browserインスタンスから直接トップレベルの関数を呼び出します。これらは、多くの基本的なスクリプト可能なアクションをカバーする幅広い機能を提供します。

働き

戻り値

$browser.actions()

このドライバーを使用して新しいアクションシーケンスを作成します。利用可能なアクションのリストは、 ActionSequence を参照してください。複数のアクションのリンク.

空所

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

headerValueのヘッダーheaderKeyをランタイムに追加します。

空所

$browser.addHeaders(headers: ?)

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

空所

$browser.deleteHeader(header: string)

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

空所

$browser.deleteHeaders(header: [string])

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

空所

$browser.addHostnameToBlacklist(hostname: string)

ホスト名を無効にします。 ワイルドカードの使用を許可する.

空所

$browser.addHostnamesToBlacklist(hostnameArr: [string])

引数の配列に含まれるすべてのホスト名を無効にします。 ワイルドカードの使用を許可します.

空所

$browser.addHostnameToWhitelist(hostname: string)

シンセティック・モニタリングでデフォルトでブロックされているホスト名を許可します。

空所

$browser.addHostnamesToWhitelist(hostnameArr: [string])

引数で指定したすべてのホスト名を許可します。

空所

$browser.deleteHostnameFromBlacklist(hostname: string)

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

空所

$browser.deleteHostnamesFromBlacklist(hostnameArr: [string])

引数に含まれるすべてのホスト名を禁止リストから削除します。

空所

$browser.deleteHostnameFromWhitelist(hostnameArr: [string])

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

空所

$browser.deleteHostnamesFromWhitelist(hostnameArr: [string])

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

空所

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

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

約束

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

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

約束

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

ページ上の要素を見つけるためのコマンドをスケジュールする 。見つからない場合、New Relic はエラーを返します。

ウェブエレメント

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

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

約束

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

ページ 上の要素を見つけて 待機するコマンドと、その要素が見えるようになるまで待機するコマンドをスケジュールします。見つからない場合、New Relic はエラーを返します。タイムアウトの値はオプションで、要素の検索と表示されるまでの待ち時間の両方のタスクに別々に適用されます。つまり、最悪の場合、このメソッドは指定したタイムアウト値の2倍までかかる可能性があります。デフォルトのタイムアウト値は1000ms(1秒)です。

約束

$browser.get(url: string)

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

約束

$browser.getAllWindowHandles()

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

約束

$browser.getCapabilities()

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

約束

$browser.getCurrentUrl()

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

約束

$browser.getHeaders()

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

マップ

$browser.getPageSource()

現在のページのソースを取得するコマンドをスケジューリングします。返されるページソースは、基礎となるDOMの表現であり、ウェブサーバーから送られるレスポンスと同じようにフォーマットされたりエスケープされたりすることはありません。

約束

$browser.getSession()

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

約束

$browser.getTitle()

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

約束

$browser.getWindowHandle()

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

約束

$browser.isElementPresent(locatorOrElement: $driver.Locator)

ページ上に要素が存在するかどうかをテストするコマンドをスケジューリングします。DOM要素が与えられた場合、この関数は、それがドライバーが現在注目しているドキュメントに属するかどうかをチェックします。それ以外の場合は、指定された検索条件で少なくとも1つの要素が見つかるかどうかをテストします。

約束

$browser.manage()

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

空所

$browser.navigate()

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

空所

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

このドライバーのCommandExecutorが実行するコマンドをスケジューリングします。

約束

$browser.sleep()

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

約束

$browser.switchTo()

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

空所

$browser.takeScreenshot()

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

約束

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

コマンドをスケジュールして、ユーザーが提供する関数で定義された を保持する条件を待ちます。

ウェブエレメント

$browser.waitForPendingRequests(timeout: number)

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

約束

不許可リスト。ワイルドカードの使用

ブラウザのインスタンスでドメインを禁止するには、ブロックする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

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

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

働き

戻り値

$browser.manage().addCookie(name: string, value: string, opt_path: string, opt_domain: string, opt_isSecure: boolean, opt_expiry: number)

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

約束

$browser.manage().deleteAllCookies()

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

約束

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

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

約束

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

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

約束

$browser.manage().getCookies()

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

約束

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

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

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

約束

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

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

約束

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

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

約束

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

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

約束

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

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

約束

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

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

約束

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

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

約束

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

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

約束

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

ロケーターは、 locatorインスタンスを作成するためのファクトリ関数のコレクションです。ロケーターは、 $browser.findElement$browser.isElementPresentなどの関数に渡すことができる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要素のシーケンスを入力するコマンドをスケジュールします。

ウェブエレメント

getTagName()

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

ウェブエレメント

getCssValue(name: string)

このインスタンスによって表される要素の計算されたスタイルを照会するコマンドをスケジュールします。 要素がその親から名前付きスタイルを継承する場合、親はその値について照会されます。 可能な場合、色の値は16進表現に変換されます(たとえば、rgb(0, 255, 0)ではなく#00ff00)。

約束

getAttribute(name: string)

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

約束

getText(name: string)

この要素の表示(CSSで非表示ではない) innerTextを、先頭または末尾の空白なしで、サブ要素を含めて取得します。

約束

getSize()

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

約束

getLocation()

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

約束

isEnabled()

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

約束

isSelected()

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

約束

submit()

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

約束

clear()

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

約束

isDisplayed()

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

約束

getOuterHtml()

この要素の外側のHTMLを取得するコマンドをスケジューリングします。

約束

getInnerHtml()

この要素のインナーHTMLを取得するコマンドをスケジューリングします。

約束

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

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

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

利用可能なアクションの一覧を以下の表に示します。 詳細については、WebDriver ActionSequence documentation をご覧ください。

働き

戻り値

click(opt_elementOrButton: ?, opt_button: ?)

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

アクションシーケンス

doubleClick(opt_elementOrButton: ?, opt_button: ?)

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

アクションシーケンス

dragAndDrop(element: ?, location: ?)

「ドラッグアンドドロップ」操作を実行するための便利な機能。ターゲット要素は、別の要素の場所に移動するか、オフセット(ピクセル単位)で移動できます。場所は、2つのプロパティxy{x: x_offset, y: y_offset}を持つオブジェクトです。

アクションシーケンス

keyDown(key: ?)

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

アクションシーケンス

keyUp(key: ?)

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

アクションシーケンス

mouseDown(opt_elementOrButton: ?, opt_button: ?)

マウスボタンを押します。このシーケンスで呼び出されたか別のシーケンスで呼び出されたかに関係なく、 mouseUpが呼び出されるまでマウスボタンは離されません。順不同のイベント(ボタンがすでに押されているときにmouseDown()またはclick()を呼び出すなど)の動作は定義されていません。

アクションシーケンス

mouseUp(opt_elementOrButton: ?, opt_button: ?)

マウスボタンを離します。 mouseDown()を事前に呼び出さずにこの関数を呼び出すと、動作が定義されません。

アクションシーケンス

mouseMove(location: ?, offset: ?)

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

アクションシーケンス

perform()

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

約束

sendKeys(args: ?)

複数のキーの入力をシミュレートします。シーケンスの中で遭遇した各モディファイアキーは、再び遭遇するまで離されません。すべてのキーイベントは、現在フォーカスされている要素が対象となります。サポートされている英数字以外のキーの完全なリストは、 WebDriver enum key documentation を参照してください。

アクションシーケンス

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

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

これらの関数は、promiseのステータスを評価し、それらをキャンセルします。特に、 then()関数とその兄弟であるthenFinally()およびthenCatch()を使用して一連のアクションを作成できます。詳細については、シーケンスアクションを参照してください。

働き

戻り値

cancel(string: reason)

このプロミスの値の計算をキャンセルし、その過程でプロミスを拒否します。このメソッドは、プロミスがすでに解決されている場合は実行されません。

空所

isPending()

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

ブール値

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

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

約束

thenFinally(callback: fn())

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

約束

thenCatch(callback: fn())

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

約束

$browser.navigate()関数は、ブラウザの履歴を前後に移動したり、ページを更新したり、新しいページに移動したりできる多くの関数を公開しています。

働き

戻り値

Conditions:一時停止と条件待ち

$browser.waitとともに使用すると、 untilは条件が一致するまでスクリプトの実行を一時停止します。明示的および暗黙的な待機の詳細については、 WebDriverのドキュメントを参照してください。

.waitおよび.untilの使用例については、 Webdriver.waitの例を参照してください。

$driver.until.Conditionで使用できる関数は次のとおりです。

働き

戻り値

ableToSwitchToFrame(frame: ?)

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

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

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

  • 現在のページに切り替える前に、最初に現在のページで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つの要素が指定されたロケーターで見つかるまでループする条件を作成します。

調子

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

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

調子

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

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

調子

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

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

調子

stalenessOf(element: $driver.WebElement)

与えられた要素が陳腐化するのを待つ条件を作成します。要素は、DOMから削除されるか、新しいページが読み込まれると、古くなったとみなされます。

調子

titleContains(substr: string)

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

調子

titleIs(title: string)

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

調子

titleMatches(regex: string)

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

調子

Copyright © 2022 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.