跳至主要內容

$

$ 指令是一種方便且簡潔的方式,可以在頁面上獲取單一元素。

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

注意:鏈式使用 $$$ 指令僅在您使用多個選取器策略時才有意義。否則,您將會發出不必要的請求,從而減慢測試速度(例如,$('body').$('div') 將會觸發兩個請求,而 $('body div') 實際上會以一個請求完成相同的操作)

注意: 僅當您確定這些元素物件仍然存在於頁面上時才使用它們,例如使用 isExisting 指令。由於沒有可用的選取器資訊,WebdriverIO 無法重新獲取它們。

使用 wdio 測試執行器時,此指令是一個全域變數,請參閱 全域變數 以取得更多資訊。在 獨立 腳本中使用 WebdriverIO 時,它將位於瀏覽器物件上(例如 browser.$$)。

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

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

如需更多關於如何選取特定元素的資訊,請查看選取器指南。

用法
browser.$(selector)
參數
名稱類型詳細資訊
selectorString, 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 AI Copilot