このセクションでは、ブラウザーアイテムスクリプトで使用するためにDuktapeで実装されたJavaScript言語へのZabbixの追加機能について説明します。 これらの追加機能は、追加のJavaScriptオブジェクトページで説明されているJavaScriptオブジェクトを補完するものです。
BrowserオブジェクトはWebDriverセッションを管理し、作成時にセッションを初期化し、破棄時にセッションを終了します。 1つのスクリプトで最大4つのBrowserオブジェクトをサポートできます。
Browserオブジェクトを構築するには、new Browser(options)構文を使用します。 options(JSONオブジェクト)パラメータはブラウザオプションを指定し、通常はWebDriverのオプションメソッドの結果(例:Browser.chromeOptions())です。
Browserオブジェクトでサポートされているメソッドは以下の通りです。
| メソッド | 説明 |
|---|---|
navigate(url) |
指定したURLに移動します。 パラメータ: url - (string) 移動するURL。 |
getUrl() |
開いているページのURLの文字列を返します。 |
getPageSource() |
開いているページのソースの文字列を返します。 |
findElement(strategy, selector) |
開いているページ内の1つの要素を持つElementオブジェクトを返します(strategyとselectorに一致する要素がない場合はnullを返します)。パラメータ: strategy - (string, CSSセレクタ/リンクテキスト/部分リンクテキスト/タグ名/Xpath) ロケーションストラテジー;selector - (string) 指定したロケーションストラテジーを使用した要素セレクタ。 |
findElements(strategy, target) |
開いているページ内の複数の要素を持つElementオブジェクトの配列を返します(ロケーションストラテジーとターゲットに一致する要素がない場合は空配列を返します)。パラメータ: strategy - (string, CSSセレクタ/リンクテキスト/部分リンクテキスト/タグ名/Xpath) ロケーションストラテジー;target - (string) 指定したロケーションストラテジーを使用した要素セレクタ。 |
getCookies() |
Cookieオブジェクトの配列を返します。 |
addCookie(cookie) |
Cookieを設定します。 パラメータ: cookie - (Cookieオブジェクト) 設定するCookie。 |
getScreenshot() |
ブラウザのビューポート画像を表すbase64エンコード文字列を返します。 |
setScreenSize(x,y) |
ブラウザのビューポートサイズを設定します。 パラメータ: x - (string) ピクセル単位の高さ;y - (string) ピクセル単位の幅。 |
setScriptTimeout(timeout) |
スクリプトの読み込みタイムアウトを設定します。 パラメータ: timeout - (integer) タイムアウト値(ミリ秒)。 |
setSessionTimeout(timeout) |
セッション(ページロード)のタイムアウトを設定します。 パラメータ: timeout - (integer) タイムアウト値(ミリ秒)。 |
setElementWaitTimeout(timeout) |
要素ロケーションストラテジー(暗黙的)タイムアウトを設定します。 パラメータ: timeout - (integer) タイムアウト値(ミリ秒)。 |
collectPerfEntries(mark) |
getResult()メソッドで取得するためのパフォーマンスエントリを収集します。パラメータ: mark - (string, オプション) パフォーマンススナップショットマーク。 |
getRawPerfEntries() |
パフォーマンスエントリオブジェクトの配列を返します。 |
getResult() |
ブラウザセッションの統計情報(エラー情報、パフォーマンススナップショットなど)を持つResultオブジェクトを返します。 |
getError() |
ブラウザエラーを持つBrowserErrorオブジェクトを返します(ブラウザエラーがない場合はnullを返します)。 |
setError(message) |
Resultオブジェクトに含めるカスタムエラーメッセージを設定します。パラメータ: message - (string) エラーメッセージ。 |
discardError() |
Resultオブジェクトで返すエラーを破棄します。 |
getAlert() |
ブラウザアラートを持つAlertオブジェクトを返します(ブラウザアラートがない場合はnullを返します)。 |
chromeOptions() |
事前定義されたChromeブラウザオプションを持つchromeOptionsオブジェクトを返します。 |
firefoxOptions() |
事前定義されたFirefoxブラウザオプションを持つfirefoxOptionsオブジェクトを返します。 |
safariOptions() |
事前定義されたSafariブラウザオプションを持つsafariOptionsオブジェクトを返します。 |
edgeOptions() |
事前定義されたEdgeブラウザオプションを持つedgeOptionsオブジェクトを返します。 |
switchFrame(target) |
指定したフレームに切り替えます。 パラメータ: target - (ブラウザ要素または整数, オプション) 対象フレーム。要素でフレームを選択する場合は要素を渡します。インデックスでフレームを選択する場合は数値を渡します。空の場合は最上位のブラウジングコンテキストに切り替えます。 |
すべてのBrowserメソッドは以下のエラーをスローする可能性があります:
BrowserError - Browserコンストラクタが失敗した場合にスローされるErrorオブジェクトから派生したもの; このBrowserErrorをスローしたBrowserオブジェクトを持つ追加のbrowserプロパティを含みます。WebdriverError - BrowserErrorから派生したもの; BrowserErrorオブジェクトと同じプロパティを含み、エラーがWebDriverレスポンスのエラーに応答して生成されたかどうかを示します。Element オブジェクトは、Browser オブジェクトの findElement()/findElements() メソッドによって返され、直接構築することはできません。
Element オブジェクトは、Webページ内の要素を表し、それに対して操作を行うためのメソッドを提供します。
Element オブジェクトでサポートされているメソッドは以下の通りです。
| メソッド | 説明 |
|---|---|
getAttribute(name) |
要素属性の属性値文字列を返します(指定された属性が見つからなかった場合は null を返します)。パラメータ: name - (string) 属性名。 |
getProperty(name) |
要素プロパティのプロパティ値文字列を返します(指定されたプロパティが見つからなかった場合は null を返します)。パラメータ: name - (string) プロパティ名。 |
getText() |
要素テキストのテキスト値文字列を返します。 |
click() |
要素をクリックします。 |
clear() |
編集可能な要素の内容をクリアします。 |
sendKeys(keys) |
キーを送信します。 パラメータ: keys - (string) 送信するキー。 |
Cookieオブジェクトは、BrowserオブジェクトのgetCookies()メソッドによって返され、addCookie()メソッドに渡されます。
Cookieオブジェクトにはメソッドはありませんが、以下のプロパティを含めることができます。
| プロパティ | 型 | 説明 |
|---|---|---|
| name | string | Cookieの名前 |
| value | string | Cookieの値 |
| path | string | Cookieが有効なパス Cookie追加時に省略した場合は "/"がデフォルト |
| domain | string | Cookieが表示されるドメイン Cookie追加時に省略した場合は、セッションの現在のブラウジングコンテキストのアクティブドキュメントのURLドメインがデフォルト |
| secure | boolean | Cookieがセキュアかどうか Cookie追加時に省略した場合は falseがデフォルト |
| httpOnly | boolean | CookieがHTTP専用かどうか Cookie追加時に省略した場合は falseがデフォルト |
| expiry | integer | Cookieの有効期限(Unixエポックからの秒数) Cookie追加時に省略した場合は設定不可 |
| sameSite | string | CookieのsameSite属性。Cookieをファーストパーティまたは同一サイトコンテキストに制限するかどうかを制御します。"Lax"または"Strict"のいずれかを設定可能Cookie追加時に省略した場合は "None"がデフォルト |
Alert オブジェクトはウェブページのアラートを表し、Browser オブジェクトの getAlert() メソッドによって返され、直接構築することはできません。
Alert オブジェクトには、アラートのテキスト(またはアラートがない場合は null)を持つ text プロパティが含まれています。
Alert オブジェクトでは、以下のメソッドがサポートされています。
| メソッド | 説明 |
|---|---|
accept() |
アラートを受け入れます。 |
dismiss() |
アラートを閉じます。 |
Result オブジェクトにはセッション統計が含まれており、Browser オブジェクトの getResult() メソッドによって返されます。
通常、Result オブジェクトは文字列化されてスクリプトから返され、前処理を通じて依存アイテム値にパースされます。
Result オブジェクトにはメソッドはありませんが、以下のプロパティを含めることができます。
| プロパティ | 型 | 説明 | ||
|---|---|---|---|---|
| duration | string | セッション作成から結果取得までのセッション継続時間。 | ||
| error | object | エラー情報。 | ||
| http_status | integer | WebDriver から返された HTTP ステータス(WebDriver エラーがない場合は 0)。 | ||
| error_code | string | WebDriver から返されたエラー(WebDriver エラーがない場合は空文字列)。 | ||
| message | string | WebDriver エラーメッセージ(WebDriver エラーがない場合は空文字列)。 | ||
| performance_data | object | パフォーマンス統計。 | ||
| summary | object | パフォーマンスサマリー。 | ||
| navigation | object | ナビゲーションサマリー。 | ||
| resource | object | リソースサマリー。 | ||
| details | array of objects | ナビゲーションにつながる可能性のある各操作後のパフォーマンス統計。 | ||
| mark | string | (オプション) collectPerfEntries() メソッドで指定されたパフォーマンススナップショットマーク。 |
||
| navigation | object | ナビゲーション統計。 | ||
| resource | object | このステップのリソースサマリー。 | ||
| user | array of objects | mark/measure タイプの統計の配列。 | ||
| marks | array of objects | マークされたパフォーマンススナップショットインデックス。 | ||
| name | string | パフォーマンススナップショットマーク名。 | ||
| index | integer | details 配列内のパフォーマンススナップショットインデックス。 | ||