カスタムコマンド
browser
インスタンスを独自のコマンドセットで拡張したい場合、ブラウザメソッドaddCommand
がその目的のために用意されています。スペックの中と同じように、非同期方式でコマンドを書くことができます。
パラメータ
コマンド名
コマンドを定義し、ブラウザまたは要素のスコープに付加される名前。
型: String
カスタム関数
コマンドが呼び出されたときに実行される関数。this
スコープは、コマンドがブラウザスコープに付加されるか要素スコープに付加されるかによって、WebdriverIO.Browser
またはWebdriverIO.Element
のいずれかになります。
型: Function
ターゲットスコープ
コマンドをブラウザスコープに付加するか要素スコープに付加するかを決定するフラグ。true
に設定すると、コマンドは要素コマンドになります。
型: Boolean
デフォルト: false
例
この例では、現在のURLとタイトルを1つの結果として返す新しいコマンドを追加する方法を示しています。スコープ(this
)はWebdriverIO.Browser
オブジェクトです。
browser.addCommand('getUrlAndTitle', async function (customVar) {
// `this`は`browser`スコープを参照します
return {
url: await this.getUrl(),
title: await this.getTitle(),
customVar: customVar
}
})
さらに、最後の引数としてtrue
を渡すことで、要素インスタンスを独自のコマンドセットで拡張できます。この場合のスコープ(this
)はWebdriverIO.Element
オブジェクトです。
browser.addCommand("waitAndClick", async function () {
// `this`は$(selector)の戻り値です
await this.waitForDisplayed()
await this.click()
}, true)