Hi Các Anh/ Chị.
Em đang tìm hiểu về automation test nhưng đang gặp phải một vấn đề. Nhờ mọi người chỉ giúp.
Đó là em có một câu lệnh viết thế này
List<WebElement> rows = driver.findElements(By.xpath("//div[@row]"));
và 1 câu lệnh kiểm tra if (rows .size() > 0) thì thông bảo element không tồn tại..
Nếu tìm thấy element rows thì vẫn chạy bình thường.
Nhưng khi không tìm thấy element rows thì khi chạy đến câu lệnh List<WebElement> rows = driver.findElements(By.xpath("//div[@row]"));
thì lại không chạy được.
Em debug thì thấy báo Thread [Forwarding findElement on session fd4127e7-b651-433c-aef2-a45e744c2a07 to remote] (Stepping).
Em không biết xử lý như thế nào. Mong mọi người chỉ giúp.
Em cảm ơn
Hỏi về cách kiểm tra nếu element không tồn tại
Forum rules
Nơi trao đổi, chia sẻ thông tin liên quan đến testing tool Selenium.
Nên search trước khi post bài.
Nơi trao đổi, chia sẻ thông tin liên quan đến testing tool Selenium.
Nên search trước khi post bài.
-
- Hoc Tester
- Posts: 1
- Joined: Tue 08 Aug, 2017 9:06 pm
- Contact:
-
- Admin
- Posts: 4900
- Joined: Tue 10 Aug, 2010 10:11 am
- Location: HCM
- Contact:
Re: Hỏi về cách kiểm tra nếu element không tồn tại
Xin chào,
Bạn thử theo cách này xem sao nha.
Theo như đoạn code này thì sau khi chờ 1 lúc (hết thời gian timeout) không thấy element, WebDriver sẽ văng ra exception. Lúc đó mình nhận được exception thì return TRUE => đồng nghĩa là không có element đó.
Bạn thử theo cách này xem sao nha.
Code: Select all
public Boolean apply(WebDriver input) {
try {
input.findElement(By.xpath(String.format(
Locators.CHECK_TEXT_IN_FIRST_STATUS_BOX, text)));
return false;
} catch (NoSuchElementException e) {
return true;
}
}
-
- Fresher Tester
- Posts: 27
- Joined: Sun 03 Feb, 2013 8:18 pm
- Location: Đà nẵng
- Contact:
Re: Hỏi về cách kiểm tra nếu element không tồn tại
Cơ chế của Selenium là nó sẽ locate element trước khi thực hiện 1 action lên đó. Cách check này ko ổn vì nó ko chạy qua cái step đầu tiên nếu ko tìm thấy element dc. Bạn thử cách này xem ntn nhé:tuancv5 wrote:Hi Các Anh/ Chị.
Em đang tìm hiểu về automation test nhưng đang gặp phải một vấn đề. Nhờ mọi người chỉ giúp.
Đó là em có một câu lệnh viết thế này
List<WebElement> rows = driver.findElements(By.xpath("//div[@row]"));
và 1 câu lệnh kiểm tra if (rows .size() > 0) thì thông bảo element không tồn tại..
Nếu tìm thấy element rows thì vẫn chạy bình thường.
Nhưng khi không tìm thấy element rows thì khi chạy đến câu lệnh List<WebElement> rows = driver.findElements(By.xpath("//div[@row]"));
thì lại không chạy được.
Em debug thì thấy báo Thread [Forwarding findElement on session fd4127e7-b651-433c-aef2-a45e744c2a07 to remote] (Stepping).
Em không biết xử lý như thế nào. Mong mọi người chỉ giúp.
Em cảm ơn
- dùng explicitWait, wait cho 1 element invisible (bị ẩn trên page)
WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//div[@row]")));
Nếu vẫn ko được thì contact mình giúp.
-
- Admin
- Posts: 4900
- Joined: Tue 10 Aug, 2010 10:11 am
- Location: HCM
- Contact:
Re: Hỏi về cách kiểm tra nếu element không tồn tại
Cám ơn Đảm đã giúp, lâu lắm rồi mới thấy xuất hiện