NỘI DUNG BÀI HỌC

WebElement được sử dụng trong tất cả các script, đơn giản vì lúc test web, chúng ta tương tác với các element trên trang web. Do đó, chúng ta phải nắm chắc những method của WebElement. Trong Selenium, những hành động đó không nhiều và sử dụng rất dễ.

Danh sách các Hàm cơ bản của WebElement

Tất cả các thao tác cơ bản cần thực hiện khi tương tác với một trang web sẽ được thực hiện thông qua Giao diện WebElement này.

[Selenium Java] Lesson 6: Sử dụng các hàm cơ bản của WebElement | Anh Tester

Locators (nhắc lại chút nhé)

Bộ định vị, tìm Element theo các kiểu khác nhau:

// Tìm một element
driver.findElement(By.className("className"));
driver.findElement(By.cssSelector("css"));
driver.findElement(By.id("id"));
driver.findElement(By.linkText("text"));
driver.findElement(By.name("name"));
driver.findElement(By.partialLinkText("pText"));
driver.findElement(By.tagName("input"));
driver.findElement(By.xpath("//*[@id='editor']"));

// Tìm nhiều Element chung kiểu
List<WebElement> anchors = driver.findElements(By.tagName("a"));

// Tìm kiếm một element trong một element khác
WebElement div = driver.findElement(By.tagName("div"))
 .findElement(By.tagName("a"));


Các hàm cơ bản của WebElement

1. clear()

void WebElement.clear () - Xóa giá trị ô text. Phương thức này không có tham số và không trả về gì luôn.
Code:

element.clear();

Phương pháp này không ảnh hưởng đến các yếu tố khác. Phần tử nhập văn bản là phần tử INPUT và TEXTAREA
Ví dụ:

WebElement element = driver.findElement(By.id("UserName"));
element.clear();
 
//Hoặc có thể viết
 
driver.findElement(By.id("UserName")).clear();


2. sendKeys()

void WebElement.sendKeys (string text) - Nhập vào một phần tử, có thể đặt giá trị của nó. Phương thức này chấp nhận chuỗi làm tham số và không trả về gì cả.
Code:

element.sendKeys("text");

 

Phương pháp này hoạt động tốt với các phần tử nhập văn bản như phần tử INPUT và TEXTAREA.
Ví dụ:

WebElement element = driver.findElement(By.id("UserName"));
element.sendKeys("AnhTester");

//Hoặc có thể viết

driver.findElement(By.id("UserName")).sendKeys("AnhTester");


3. click()

void IWebElement.Click () - Điều này mô phỏng việc nhấp vào bất kỳ phần tử nào. Không có tham số và không trả về gì.
Code:

element.click();

Click có lẽ là cách phổ biến nhất để tương tác với các phần tử web như phần tử văn bản, liên kết, radio, checkbox và nhiều thứ khác.
Ví dụ:

WebElement element = driver.findElement(By.linkText("Dashboard"));
element.click();

//Hoặc có thể viết

driver.findElement(By.linkText("Dashboard")).click();

Có một số điều kiện tiên quyết để một phần tử được nhấp vào. Phần tử phải Hiển thị và nó phải có Chiều cao và Chiều rộng lớn hơn 0.

4. isDisplayed()

bool WebElement.isDisplayed() - Phương thức này xác định xem một phần tử hiện đang được hiển thị hay không. Nó không có tham số và trả về giá trị boolean (true / false).

Code:

element.isDisplayed();

Ví dụ:

WebElement element = driver.findElement(By.id("UserName"));
bool status = element.isDisplayed();

//Hoặc có thể viết

bool staus = driver.findElement(By.id("UserName")).isDisplayed();

Chú ý: Điều này đề cập đến thuộc tính của phần tử, đôi khi phần tử hiện diện trên trang nhưng thuộc tính của phần tử được đặt thành ẩn (hide), trong trường hợp đó, nó sẽ trả về false, vì phần tử hiện diện trong DOM nhưng không hiển thị lên.

5. isEnabled()

bool WebElement.isEnabled() - Điều này xác định xem phần tử hiện đang được Bật hay không? Không có tham số và trả về giá trị boolean (true / false).
Code:

element.isEnabled();

Ví dụ:

WebElement element = driver.findElement(By.id("UserName"));
bool status = element.isEnabled();
 
//Hoặc có thể viết
bool staus = driver.findElement(By.id("UserName")).isEnabled();

// Kiểm tra xem trường Văn bản đã được bật chưa, nếu có thì nhập giá trị

if(status){
    element.sendKeys("AnhTester");
}

 

6. isSelected()

bool WebElement.isSelected()   - Xác định xem phần tử này có được chọn hay không (đối với Radio, Checkbox). Không có tham số và trả về giá trị boolean (true / false).
Code:

element.isSelected();

Thao tác này chỉ áp dụng cho các phần tử đầu vào như CheckboxesSelect OptionsRadio Buttons . Điều này trả về True nếu phần tử hiện đang được chọn hoặc được kiểm tra, ngược lại là false.

Ví dụ:

WebElement element = driver.findElement(By.id("Sex-Male"));
bool status = element.isSelected();
 
//Hoặc có thể viết
 
bool staus = driver.findElement(By.id("Sex-Male")).isSelected();

 

Lưu ý : Trong các bài sau của Check Box & Radio Drop Down & Multiple Selects, chúng ta sẽ có nhiều ví dụ hơn.

 

7. submit()

void WebElement.submit () - Phương thức này hoạt động tốt hơn so với click() nếu phần tử hiện tại là một biểu mẫu (Form) hoặc một phần tử trong một biểu mẫu. Không có tham số và không trả về.

Có một sự khác biệt giữa click()submit():

submit() gửi biểu mẫu và thực thi url được cung cấp bởi thuộc tính "action". Nếu bạn có bất kỳ chức năng javascript hoặc jquery-plugin nào đang chạy để gửi biểu mẫu, ví dụ: thông qua ajax, submit() sẽ bỏ qua nó.
Với click(), các hàm javascript sẽ được thực thi.

.click() - Chỉ thực hiện thao tác nhấp chuột như nhấp chuột.

.submit() - Thực hiện thao tác Enter giống như bàn phím Enter sự kiện.

Code:

element.submit();

Nếu điều này làm cho trang hiện tại thay đổi, thì phương thức này sẽ đợi cho đến khi trang mới được tải.

Ví dụ:

WebElement element = driver.findElement(By.id("SubmitButton"));
element.submit();
 
//Hoặc có thể viết
 
driver.findElement(By.id("SubmitButton")).submit();

 

8. getText()

string WebElement.getText() - Phương thức này sẽ lấy chuỗi Text hiển thị (tức là không bị ẩn bởi CSS) của phần tử. Không có tham số và trả về một giá trị Chuỗi.

Code:

element.getText();

Ví dụ:

WebElement element = driver.findElement(By.xpath("anyLink"));

string linkText = element.getText();

 

9. getTagName()

string WebElement.getTagName() - Phương thức này lấy Tên thẻ HTML của phần tử này. Không có tham số và trả về một giá trị Chuỗi.

Code:

element.getTagName();

Thao tác này không trả về giá trị của thuộc tính name nhưng trả về thẻ
ví dụ:
Lấy tên thẻ "input
" cho phần tử <input name="anhtester"/>

WebElement element = driver.findElement(By.id("SubmitButton"));
String tagName = element.getTagName();
 
//Hoặc có thể viết
string tagName = driver.findElement(By.id("SubmitButton")).getTagName();​


10. getCssValue()

string WebElement.getCssValue (string propertyName) - Phương thức này lấy giá trị của thuộc tính CSS của phần tử đã cho. Tham số là một Chuỗi (tên thuộc tính).
Code:
element.getCssValue("thuộc tính css");​

Giá trị màu phải được trả về dưới dạng chuỗi rgba. Còn lại bình thường.

Ví dụ:
nếu thuộc tính "background-color" được đặt là "green" trong mã nguồn HTML, giá trị trả về sẽ là "rgba (0, 255, 0, 1)"

Code:

WebElement element = driver.findElement(By.id("AddButton"));
String cssValue = element.getCssValue();
 
//Hoặc có thể viết
string cssValue = driver.findElement(By.id("AddButton")).getCssValue("background-color");​


11. getAttribute()

string WebElement.getAttribute (string propertyName) - Phương thức này lấy giá trị của thuộc tính đã cho của phần tử. Nó chấp nhận Chuỗi làm tham số và trả về giá trị Chuỗi.

Code:
element.getAttribute("Thuộc tính");​

Các thuộc tính là: id, name, class, href, src, width, height,...Và sử dụng phương thức này bạn có thể nhận giá trị của các thuộc tính của bất kỳ phần tử nhất định nào.

Ví dụ:
WebElement element = driver.findElement(By.id("SubmitButton"));
string attValue = element.getAttribute("id"); //Nó sẽ trả về "SubmitButton"​

12. getSize()

org.openqa.selenium.Dimension   WebElement.getSize() - Phương thức này lấy chiều rộng và chiều cao của phần tử được hiển thị. Không có tham số và trả về đối tượng Thứ nguyên (Width, Height)
Code:
element.getSize();​

Ví dụ:

WebElement element = driver.findElement(By.id("SubmitButton"));

Dimension dimensions = element.getSize();

System.out.println("Height: " + dimensions.Height + " Width: " + 
 dimensions.Width);

13. getLocation()

org.openqa.selenium.Point   WebElement.getLocation()  - Phương thức này xác định vị trí của phần tử trên trang. Không có tham số và trả về đối tượng Point (X, Y)

Code:
element.getLocation();​

Điều này trả về đối tượng Point , từ đó chúng ta có thể nhận được tọa độ XY của phần tử cụ thể.

Ví dụ:
WebElement element = driver.findElement(By.id("SubmitButton"));

org.openqa.selenium.Point point = element.getLocation();

System.out.println("X cordinate : " + point.X + "Y cordinate: " + point.Y);​


Trên đây là các lệnh cơ bản của WebElement hỗ trợ trong Selenium Java.

Tìm hiểu thêm tại: Các lệnh truy vấn trong Selenium WebDriver Java

 

Teacher

Teacher

Anh Tester

Tester

Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu

Cộng đồng Automation Testing Việt Nam:


🌱 Zalo
Automation Testing:   https://zalo.me/g/lsxswc560
🌱 Facebook Group: Cộng đồng Automation Testing Việt Nam (Website, Desktop, Mobile)
🌱 Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium

Chia sẻ khóa học lên trang

Bạn có thể đăng khóa học của chính bạn lên trang Anh Tester để kiếm tiền

Dan sách bài học