跳到主要內容

isDisplayed

如果選取的 DOM 元素已顯示(即使元素在視窗外),則傳回 true。如果您想要驗證該元素是否也在視窗內,請使用 isDisplayedInViewport 指令。

資訊

與其他元素指令相反,WebdriverIO 不會等待元素存在才執行此指令。

WebdriverIO 在執行瀏覽器測試時,會使用一個專門設計用於評估元素可見性的自訂腳本。此腳本是確定元素是否顯示在頁面上的關鍵。相反地,對於使用 Appium 的原生行動裝置測試情境,WebdriverIO 會遵循 Appium 提供的isElementDisplayed指令。此指令使用底層 Appium 驅動程式建立的條件來評估元素的可見性,確保針對行動應用程式進行精確且驅動程式特定的評估。

用法
$(selector).isDisplayed([isWithinViewport=false])
參數
名稱類型詳細資料
[isWithinViewport=false]
可選
布林值設定為 true 以檢查元素是否在視窗內
範例
index.html
<div id="noSize"></div>
<div id="noSizeWithContent">Hello World!</div>
<div id="notDisplayed" style="width: 10px; height: 10px; display: none"></div>
<div id="notVisible" style="width: 10px; height: 10px; visibility: hidden"></div>
<div id="zeroOpacity" style="width: 10px; height: 10px; opacity: 0"></div>
<div id="notInViewport" style="width: 10px; height: 10px; position:fixed; top: 999999; left: 999999"></div>
isDisplayed.js
it('should detect if an element is displayed', async () => {
elem = await $('#notExisting');
isDisplayed = await elem.isDisplayed();
console.log(isDisplayed); // outputs: false

let elem = await $('#noSize');
let isDisplayed = await elem.isDisplayed();
console.log(isDisplayed); // outputs: false

let elem = await $('#noSizeWithContent');
let isDisplayed = await elem.isDisplayed();
console.log(isDisplayed); // outputs: true

let elem = await $('#notDisplayed');
let isDisplayed = await elem.isDisplayed();
console.log(isDisplayed); // outputs: false

elem = await $('#notVisible');
isDisplayed = await elem.isDisplayed();
console.log(isDisplayed); // outputs: false

elem = await $('#zeroOpacity');
isDisplayed = await elem.isDisplayed();
console.log(isDisplayed); // outputs: false

elem = await $('#notInViewport');
isDisplayed = await elem.isDisplayed();
console.log(isDisplayed); // outputs: true
});
isDisplayedWithinViewport.js
it('should detect if an element is visible within the viewport', async () => {
let isDisplayedInViewport = await $('#notDisplayed').isDisplayed({ withinViewport: true });
console.log(isDisplayedInViewport); // outputs: false

isDisplayedInViewport = await $('#notVisible').isDisplayed({ withinViewport: true });
console.log(isDisplayedInViewport); // outputs: false

isDisplayedInViewport = await $('#notExisting').isDisplayed({ withinViewport: true });
console.log(isDisplayedInViewport); // outputs: false

isDisplayedInViewport = await $('#notInViewport').isDisplayed({ withinViewport: true });
console.log(isDisplayedInViewport); // outputs: false

isDisplayedInViewport = await $('#zeroOpacity').isDisplayed({ withinViewport: true });
console.log(isDisplayedInViewport); // outputs: false
});

歡迎!有什麼我可以幫您?

WebdriverIO AI Copilot