我有一個 if 陳述句檢查元素是否可見,然后執行其他操作。
if (await locators.courseHeaderEditButton.visible) {
//code
}
但是,我注意到在這種情況下,即使元素在頁面上可見,TestCafe 似乎也在等待元素按照我的 testcaferc.json 檔案中的定義出現。
"selectorTimeout": 15000,
"assertionTimeout": 15000,
頁面已加載且元素可見但 TestCafe 仍在繼續等待的視頻:
https://recordit.co/Bbo9qZFWAL
如果我切換到存在,如下所示
if (await locators.courseHeaderEditButton.exists){
//code
}
然后 TestCafe 不等待 15 秒并立即繼續。
但是,使用 visible 并不總是遵循相同的行為,有時 TestCafe 會在元素可見時立即繼續運行,而無需等待 15 秒。
知道為什么在這個例子中可見的行為是這樣的嗎?
提前感謝您的任何回復。
uj5u.com熱心網友回復:
exists財產和財產的作業visibility方式不同。
exists唯一檢查元素是否顯示在頁面上。同時,該visibility屬性檢查元素是否可見(沒有可見性:隱藏或顯示:無)、clientWidth/clientHeight 是否大于 0,并且沒有與任何其他元素重疊。
您的情況可能不滿足其中一個條件。
請分享您的完整示例以重現該問題。它將允許我進一步研究它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/428169.html
上一篇:重組何時發生?改變狀態或改變輸入
