KIỂM THỬ TỰ ĐỘNG VỚI SELENIUM WEBDRIVER: TƯƠNG TÁC VỚI WEB ELEMENT

Chào các bạn, hôm nay mình xin gửi đến các bạn bài viết hướng dẫn tương tác với WebElement bằng Selenium WebDriver. Bây giờ chúng ta cùng bắt đầu nhé.

1. LinkText

LinkText (sitewide link) là một siêu liên kết, là một đoạn văn bản chứa liên kết trỏ đến một website khác. LinkText thường được đặt ở header, footer, sidebar hay một chuyên mục bất kì.

VD ở đây mình có LinkText tên là login khi mình nhấn vào sẽ chuyển đến giao diện đăng nhập.

Muốn tương tác với LinkText trong Selenium Webdriver ta làm như sau. Đầu tiên các bạn khai báo các biến, Thêm thư viện cần thiết và viết code để mở trình duyệt như hình bên dưới.

Tiếp theo để tương tác với linkText các bạn gõ dòng lệnh có cấu trúc như sau driver.findElement(By.linkText(“Tên của linkText”)).click() , ở đây mình chọn LinkText là Log in nên mình sẽ điền tham số như sau driver.findElement(By.linkText(“Log in”)).click(), lưu ý LinkText hiển thị trên giao diện thế nào thì chúng ta sẽ điền tham số giống như vậy.

Cuối cùng mình nhấn Run Project và được kết quả như sau.

Sau khi Nhấn vào LinkText “Log in” thì mình đã vào được giao diện đăng nhập, tiếp theo mình sẽ hướng dẫn các bạn tương tác với InputText và Button.

2. InputText, Button

Tiếp tục công việc ở trên mình sẽ tương tác với đối tượng InputText và Button trên Selenium WebDriver.

Đầu tiên mình cần xác định name hoặc id của đối tượng InputText mình muốn tương tác. Trên trình duyệt web mình nhấn chuột phải vào đối tượng InputText mình muốn tương tác, sau đó chọn kiểm tra.

Tiếp theo mình sao chép id hoặc name của đối tượng.

Sau khi có được id hoặc name của đối tượng mình bắt đầu qua eclips và bắt đầu viết code để tương tác. Mình gõ câu lệnh cấu trúc như sau, driver.findElement(By.id(“id của Input Text”)).sendKeys(“dữ liệu muốn điền vào InputText”)  để tương tác với InputText. Bắt đầu vào chương trình mình gõ câu lệnh driver.findElement(By.id(“user_login”)).sendKeys(“namngoc”), Dòng này dùng để điền dữ liệu vào InputText. Ở đây mình dùng id nếu các bạn dùng name thì dõ câu lệnh như sau driver.findElement(By.name(“log”)).sendKeys(“namngoc”) , tùy vào trường hợp mà các bạn sử dụng câu lệnh thích hợp nhé.

Sau đó mình làm đúng như vậy với password. Đầu tiên lấy id hoặc name.

Sau đó viết câu lệnh tương tác.

Tiếp theo đến Button “Log in” mình cũng sẽ làm tương tự như 2 InputText ở trên, tuy nhiên ở câu lệnh tương tác mình không dùng sendkeys mà mình sẽ dùng click.

Đầu tiên lấy id hoặc name của Button.

Sau đó viết câu lệnh tương tác.

Cuối cùng nhấn Run Project và mình vào được giao diện Profile.

3. RadioButton

Tiếp tục công việc ở trên, sau khi vào được giao diện Profile mình sẽ tương tác với đối tượng RadioButton trên Selenium WebDriver.

Ở đây mình sẽ không lấy đối tượng thông qua id và name nữa, mình sẽ lấy đối tượng qua Xpath. Mình sẽ giải thích đôi chút về Xpath nhé. Xpath được sử dụng để tìm vị trí bất kỳ phần tử trên Web sử dụng cấu trúc HTML – DOM. XPath chứa đường dẫn của phần tử nằm trên trang Web. Đầu Tiên các bạn phải cài Extensions Chropath vào nhé, phải có Extensions thì mới có thể lấy được Xpath của RadioButton mà chúng ta muốn tương tác.

Sau đó mình tiến hành lấy Xpath của đối tượng RadioButton như hình bên dưới.

Sau khi sao chép Xpath mình tiến hành gõ câu lệnh có cấu trúc như sau driver.findElement(By.xpath(“địa chỉ Xpath của đối tượng”)).click() và và sau đó tiến hành điền dữ liệu địa chỉ Xpath và gõ câu lệnh hoàn thiện vào file.

Lưu ý mỗi đối tượng RadioButton khác nhau sẽ có một địa chỉ Xpath khác nhau nhé.

Cuối cùng nhấn Run Project và chờ kết quả thôi.

4. CheckBox

Tiếp tục công việc ở trên mình, sau khi tương tác với RadioButton mình sẽ tương tác với đối tượng CheckBox trên selenium WebDriver.

Giống như RadioButton mình tương tác với CheckBox thông qua địa chỉ Xpath. Đầu tiên mình sẽ lấy địa chỉ Xpath của đối tượng CheckBox mà mình muốn tương tác.

Sau khi lấy được địa chỉ Xpath, chúng ta tiến hành viết câu lệnh tương tác với đối tượng check box giống như với RadioButton.

Ở đây mình sẽ cho kiểm tra trước khi nhấn vào CheckBox như sau. Mình sẽ kiểm tra kết quả trả về của hàm isSelected nếu kết quả trả về là true, tức CheckBox đã được nhấn thì mình sẽ bỏ qua không nhấn nữa còn nếu chưa, mình sẽ tiến hành viết câu lệnh nhấn vào CheckBox. Mình sẽ làm mẫu ở dưới nhé.

Cuối cùng nhấn Run Project và chờ kết quả thôi.

5. DropDown List

Tiếp tục công việc ở trên mình, sau khi tương tác với CheckBox mình sẽ tương tác với đối tượng DropDown List  trên selenium WebDriver.

Ở DropDown List này mình có 2 cách và mình sẽ hướng dẫn cả 2 cách để tương tác với đối tượng này nhé.

  • Cách 1:

Cách đầu tiên mình lấy địa chỉ Xpath của đối tượng và tương tác với đối tượng qua hàm sendKeys() giống InputText, tuy nhiên tham số truyền vào lần này sẽ không phải là tham số tự do mà phải là những yếu tố con đã được tạo sẵn trong DropDown List, VD:

Ví dụ như ở trên trong DropDownList mình có 3 đối tượng thì mình sẽ chỉ được phép truyền tham số phần sendKeys là 1 trong 3 đối tượng đó thôi.

Sau đó mình sẽ viết câu lệnh.

  • Cách 2:

Cách này mình sử dụng thư viện select của Selenium.

Đầu tiên mình sẽ thấy name hoặc id thay vì địa chỉ Xpath.

Sau đó mình tạo biến kiểu select chứa đối tượng DropDown List.

Ở bước này các bạn lưu ý thêm thư viện bên dưới vào nhé.

 import org.openqa.selenium.support.ui.Select;

Sau đó mình gõ câu lệnh có cấu trúc như sau dropdownName.selectByVisibleText(“Item DropDown bạn muốn chọn”);   và truyền tham số vào như hình bên dưới.Lưu ý tham số truyền vào phải là những yếu tố con đã được tạo sẵn trong DropDown List.

Cuối cùng nhấn Run Project và chờ kết quả thôi.

Đó là toàn bộ bài viết hướng dẫn tương tác với WebElement bằng Selenium WebDriver. Nếu có bất kì thắc mắc nào, các bạn có thể để lại phần bình luận phía bên dưới bài viết mình sẽ giải đáp. Cảm ơn các bạn đã dành thời gian đọc bài chia sẻ của mình.

Chúc các bạn thành công.

Nam Ngọc – PLT SOLUTIONS

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *