2 回答

TA貢獻1827條經驗 獲得超9個贊
與其匹配滑動前的最后一個元素和滑動后的第一個元素,不如通過檢查其列表大小來檢查所需元素是否顯示在頁面上。
假設您的頁面上有 4 個元素,加載后,顯示第 5 個元素,按照您的方法,您將檢查第 5 個元素與第 4 個元素不同,并且您將通過測試用例,但這不會讓您確定顯示的元素是您正在尋找的元素,因為第 5 個元素可以是任何其他不打算顯示在頁面上但按照您的邏輯的元素,測試用例將通過。
因此,您應該獲取要查找的元素的 xpath,然后在每次滑動后檢查元素列表大小,因為元素列表大小在頁面上顯示時會大于 0,您應該限制滑動到一個限制,以便在該次數的滑動之后,您應該將布爾值返回為 false,否則循環將在無限狀態下繼續以檢查元素是否存在。
你的代碼邏輯應該是這樣的:
List<WebElement> element = driver.findElements(By.xpath("mention the xpath of the element that needs to be found"));
boolean elementLoaded = false;
int swipeCount = 0;
// Taking the swipeCount limit as 5 here
while (!elementLoaded && swipeCount < 5) {
if (element.size() == 0) {
// Swipe the screen
swipe(driver);
swipeCount++;
} else {
elementLoaded = true;
}
}
return elementLoaded;
添加回答
舉報