Tại sao bạn cần lệnh Find Element / s?
Tương tác với một trang web yêu cầu người dùng xác định vị trí của phần tử web. Lệnh Find Element được sử dụng để xác định duy nhất một (một) phần tử web trong trang web. Trong khi đó, lệnh Find Elements được sử dụng để xác định duy nhất danh sách các phần tử web trong trang web. Có nhiều cách để xác định duy nhất một phần tử web trong trang web như ID, Tên, Tên lớp, Văn bản liên kết, Văn bản liên kết một phần, Tên thẻ và XPATH.
Cú pháp lệnh FindElement:
Lệnh Selenium Find Element lấy đối tượng By làm tham số và trả về một đối tượng kiểu danh sách WebElement trong Selenium. Lần lượt đối tượng có thể được sử dụng với các chiến lược định vị khác nhau như tìm phần tử theo ID Selenium, Name, Class Name, XPATH, v.v. Dưới đây là cú pháp của lệnh FindElement trong trình điều khiển web Selenium.
WebElement elementName = driver.findElement (By.LocatorStrategy ("LocatorValue"));
Chiến lược định vị có thể là bất kỳ giá trị nào sau đây.
- TÔI
- Selenium tìm phần tử theo Tên
- Tên lớp
- Tên thẻ
- Văn bản liên kết
- Văn bản liên kết một phần
- XPATH
Giá trị bộ định vị là giá trị duy nhất sử dụng phần tử web có thể được xác định. Các nhà phát triển và người kiểm tra có trách nhiệm đảm bảo rằng các phần tử web có thể nhận dạng duy nhất bằng cách sử dụng các thuộc tính nhất định như ID hoặc tên.
Thí dụ:
WebElement loginLink = driver.findElement (By.linkText ("Đăng nhập"));
Cú pháp lệnh FindElements:
Lệnh FindElements trong Selenium nhận đối tượng By làm tham số và trả về danh sách các phần tử web. Nó trả về một danh sách trống nếu không tìm thấy phần tử nào bằng cách sử dụng chiến lược định vị và giá trị bộ định vị đã cho. Dưới đây là cú pháp của lệnh tìm phần tử.
Danh sáchelementName = driver.findElements (By.LocatorStrategy ("LocatorValue"));
Thí dụ:
ListlistOfElements = driver.findElements (By.xpath ("// div"));
Tìm phần tử Vs Tìm phần tử
Dưới đây là sự khác biệt chính giữa lệnh tìm phần tử và lệnh tìm phần tử.

Tìm phần tử | Tìm phần tử |
---|---|
Trả về phần tử web đầu tiên nếu có nhiều phần tử web được tìm thấy với cùng một bộ định vị | Trả về danh sách các phần tử web |
Ném ngoại lệ NoSuchElementException nếu không có phần tử nào phù hợp với chiến lược định vị | Trả về danh sách trống nếu không có phần tử web nào phù hợp với chiến lược định vị |
Tìm phần tử bằng XPath sẽ chỉ tìm thấy một phần tử web | Nó sẽ tìm thấy một tập hợp các yếu tố phù hợp với chiến lược định vị. |
Không áp dụng | Mỗi phần tử Web được lập chỉ mục với một số bắt đầu từ 0 giống như một mảng |
Ví dụ: Cách sử dụng lệnh Find Element
Ứng dụng sau được sử dụng cho mục đích demo
http://demo.guru99.com/test/ajax.html
Tình huống:
1. Mở AUT
2. Tìm và nhấp vào nút radio
gói com.sample.stepdefinitions;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.chrome.ChromeDriver;lớp công khai NameDemo {public static void main (String [] args) {// VIỆC CẦN LÀM Sơ khai phương thức được tạo tự độngSystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");Trình điều khiển WebDriver = mới ChromeDriver ();driver.manage (). window (). Maxim ();driver.get ("http://demo.guru99.com/test/ajax.html");// Tìm nút radio cho “Không” bằng cách sử dụng ID của nó và nhấp vào nódriver.findElement (By.id ("no")). click ();// Nhấp vào nút Kiểm tradriver.findElement (By.id ("buttoncheck")). click ();}}
Ví dụ: Cách sử dụng lệnh Find Elements
Tình huống:
1. Mở URL cho Ứng dụng Đang Kiểm tra
2. Tìm văn bản của các nút radio và in nó lên bảng điều khiển đầu ra
gói com.sample.stepdefinitions;nhập java.util.List;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.WebElement;nhập org.openqa.selenium.chrome.ChromeDriver;lớp công khai NameDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Trình điều khiển WebDriver = mới ChromeDriver ();driver.get ("http://demo.guru99.com/test/ajax.html");Liệt kê các phần tử= driver.findElements (By.name ("name"));System.out.println ("Số phần tử: + Elements.size ());for (int i = 0; i Tóm lược:
- Lệnh Find Element trả về phần tử web phù hợp với phần tử nhất đầu tiên trong trang web.
- Lệnh Find Elements trả về danh sách các phần tử web phù hợp với tiêu chí.
- Tìm phần tử bằng XPath trong lệnh Selenium ném NoSuchElementException nếu nó không tìm thấy phần tử phù hợp với tiêu chí.
- Lệnh Find Elements trả về một danh sách trống trong Selenium nếu không có phần tử nào phù hợp với tiêu chí