跳至主要內容

$

$ 命令是一種方便快捷的方式,用於在頁面上獲取單個元素。

資訊

與附加在 browser 物件上的 $ 相反,此命令會根據根元素查詢元素。

您也可以傳入一個物件作為選擇器,其中該物件包含一個屬性 element-6066-11e4-a52e-4f735466cecf,其值為元素的參考。該命令隨後會將該參考轉換為擴展的 WebdriverIO 元素。

注意:只有在使用多個選擇器策略時,鏈式使用 $$$ 命令才有意義。否則,您將發出不必要的請求,這會減慢測試速度(例如,$('body').$('div') 會觸發兩個請求,而 $('body div') 只需一個請求即可完成相同操作)

您可以將 $$$ 鏈接在一起,而無需將個別命令包裝在 await 中,以便向下遍歷 DOM 樹,例如:

const imageSrc = await $$('div')[1].nextElement().$$('img')[2].getAttribute('src')

當使用 $$$ 命令時,無論嵌套層次或陰影根模式如何,WebdriverIO 都能無縫遍歷陰影根,例如

await browser.url('https://ionic.dev.org.tw/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)
參數
名稱類型詳細資訊
selectorStringFunctionMatcher用於獲取特定元素的選擇器、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 AI Copilot