2 ブラウザアイテムのJavaScriptオブジェクト

概要

このセクションでは、ブラウザアイテム スクリプトで使用するために、Duktape で実装された JavaScript 言語に対する Zabbix の追加機能について説明します。
これらの追加機能は、追加の JavaScript オブジェクト ページで説明されている JavaScript オブジェクトを補完するものです。

Browser

Browser オブジェクトはWebDriverセッションを管理し、作成時にセッションを初期化し、破棄時にセッションを終了します。 1つのスクリプトで最大4つの Browser オブジェクトをサポートできます。

Browser オブジェクトを構築するには、new Browser(options) 構文を使用します。 optionsJSON object)パラメータはブラウザオプションを指定し、通常はWebDriver optionsメソッドの結果です(例: Browser.chromeOptions())。

Browser オブジェクトでは、以下のメソッドがサポートされています。

Method Description
navigate(url) 指定したURLに移動します。

パラメータ:
url - (string) 移動先のURL。
getUrl() 開いているページのURL文字列を返します。
getPageSource() 開いているページのページソース文字列を返します。
findElement(strategy, selector) 開いているページ内の1つの要素を持つ Element オブジェクトを返します(strategyselector に一致する要素がない場合は 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 オブジェクトは、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 配列内のパフォーマンススナップショットのインデックス。