$
$
指令是一種方便且簡潔的方式,可以在頁面上獲取單一元素。
您也可以傳入一個物件作為選取器,其中該物件包含一個名為 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)
參數
名稱 | 類型 | 詳細資訊 |
---|---|---|
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();
});