2 ブラウザアイテムのJavaScriptオブジェクト
概要
このセクションでは、ブラウザアイテム スクリプトで使用するために、Duktape で実装された JavaScript 言語に対する Zabbix の追加機能について説明します。
これらの追加機能は、追加の JavaScript オブジェクト ページで説明されている JavaScript オブジェクトを補完するものです。
Browser
Browser オブジェクトはWebDriverセッションを管理し、作成時にセッションを初期化し、破棄時にセッションを終了します。
1つのスクリプトで最大4つの Browser オブジェクトをサポートできます。
Browser オブジェクトを構築するには、new Browser(options) 構文を使用します。
options(JSON object)パラメータはブラウザオプションを指定し、通常はWebDriver optionsメソッドの結果です(例: Browser.chromeOptions())。
Browser オブジェクトでは、以下のメソッドがサポートされています。
| Method | Description |
|---|---|
navigate(url) |
指定したURLに移動します。 パラメータ: url - (string) 移動先のURL。 |
getUrl() |
開いているページのURL文字列を返します。 |
getPageSource() |
開いているページのページソース文字列を返します。 |
findElement(strategy, selector) |
開いているページ内の1つの要素を持つ Element オブジェクトを返します(strategy と selector に一致する要素がない場合は null を返します)。パラメータ: strategy - (string, css selector/link text/partial link text/tag name/xpath) Location strategy;selector - (string) 指定したロケーション戦略を使用する要素セレクター。 |
findElements(strategy, target) |
開いているページ内の複数の要素を持つ Element オブジェクトの配列を返します(ロケーション戦略とtargetに一致する要素がない場合は空の配列を返します)。パラメータ: strategy - (string, css selector/link text/partial link text/tag name/xpath) Location strategy;target - (string) 指定したロケーション戦略を使用する要素セレクター。 |
getCookies() |
Cookie オブジェクトの配列を返します。 |
addCookie(cookie) |
Cookieを設定します。 パラメータ: cookie - (Cookie object) 設定する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, optional) パフォーマンススナップショットのマーク。 |
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 element or integer, optional) 対象フレーム。要素でフレームを選択するには、その要素を渡します。インデックスでフレームを選択するには、その番号を渡します。空のままにすると、トップレベルのブラウジングコンテキストに切り替わります。 |
すべてのBrowserメソッドは、以下のエラーをスローする可能性があります。
BrowserError-Errorオブジェクトから派生したもので、Browserコンストラクタが失敗した場合にスローされます。追加のbrowserプロパティを含み、このBrowserErrorをスローしたBrowserオブジェクトを保持します。WebdriverError-BrowserErrorから派生したもので、BrowserErrorオブジェクトと同じプロパティを含みます。これらは、WebDriverレスポンス内のエラーに応答して生成されたエラーであることを示します。
Element
Element オブジェクトは、Browser オブジェクトの findElement()/findElements() メソッドによって返され、直接構築することはできません。
Element オブジェクトはWebページ内の要素を表し、それを操作するためのメソッドを提供します。
Element オブジェクトでは、以下のメソッドがサポートされています。
| Method | Description |
|---|---|
getAttribute(name) |
要素の属性の属性値文字列を返します(指定した属性が見つからない場合は null を返します)。パラメータ: name - (string) 属性名。 |
getProperty(name) |
要素のプロパティのプロパティ値文字列を返します(指定したプロパティが見つからない場合は null を返します)。パラメータ: name - (string) プロパティ名。 |
getText() |
要素のテキストの文字列値を返します。 |
click() |
要素をクリックします。 |
clear() |
編集可能な要素の内容をクリアします。 |
sendKeys(keys) |
キーを送信します。 パラメータ: keys - (string) 送信するキー。 |
Cookie
Cookie オブジェクトは、Browser オブジェクトの getCookies() メソッドによって返され、addCookie() メソッドに渡されます。
Cookie オブジェクトにはメソッドはありませんが、以下のプロパティを含めることができます。
| プロパティ | Type | 説明 |
|---|---|---|
| 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 をファーストパーティまたは same-site コンテキストに制限するかどうかを制御します。"Lax" または "Strict" のいずれかを設定できます。Cookie の追加時に省略した場合、デフォルトは "None" です。 |
Alert
Alert オブジェクトはWebページのアラートを表し、Browser オブジェクトの getAlert() メソッドによって返され、直接構築することはできません。
Alert オブジェクトには、アラートのテキストを含む text プロパティがあります(アラートがない場合は null)。
Alert オブジェクトでは、以下のメソッドがサポートされています。
| Method | Description |
|---|---|
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 配列内のパフォーマンススナップショットのインデックス。 | ||