$
$
コマンドは、ページ上の単一の要素を取得するための短く便利な方法です。
情報
ブラウザオブジェクトに紐づく$
とは異なり、
このコマンドはルート要素に基づいて要素をクエリします。
セレクタとして、プロパティelement-6066-11e4-a52e-4f735466cecf
を含むオブジェクトを渡すこともできます。
このプロパティの値は要素への参照です。コマンドは参照を拡張されたWebdriverIO要素に変換します。
注意: $
と$$
コマンドを連鎖させることは、複数のセレクタ戦略を使用する場合にのみ意味があります。そうでない場合は、
テストを遅くする不要なリクエストを発生させることになります(例:$('body').$('div')
は2つのリクエストを発生させますが、
$('body div')
は同じことをたった1つのリクエストで行います)
DOMツリーを下に移動するために、個々のコマンドをawait
でラップすることなく、$
や$$
を連鎖させることができます。例:
const imageSrc = await $$('div')[1].nextElement().$$('img')[2].getAttribute('src')
WebdriverIOは、ネストレベルやシャドウルートモードに関係なく、$
または$$
コマンドを使用する際にシャドウルートをシームレスに走査します。例:
await browser.url('https://ionicframework.com/docs/usage/v8/datetime/basic/demo.html?ionic:mode=md')
await browser.$('button[aria-label="Sunday, August 4"]').click()
await browser.$('.aux-input').getValue()
情報
特定の要素を選択する方法の詳細については、セレクタガイドをご確認ください。
使用法
$(selector).$(selector)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
selector | String, Function, Matcher | 特定の要素を取得するためのセレクタ、JS関数、またはMatcherオブジェクト |
例
example.html
loading...
singleElements.js
loading...
singleElements.js
loading...
singleElements.js
loading...
$.js
it('should use Androids DataMatcher or ViewMatcher selector', async () => {
const menuItem = await $({
"name": "hasEntry",
"args": ["title", "ViewTitle"],
"class": "androidx.test.espresso.matcher.ViewMatchers"
});
await menuItem.click();
const menuItem = await $({
"name": "hasEntry",
"args": ["title", "ViewTitle"]
});
await menuItem.click();
});
戻り値
- <WebdriverIO.Element>