[Bài 5] Những method của interface WebElement

Cùng với interface WebDriver, 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ễ.

Lưu ý: Tất cả các method này chỉ hoạt động khi chủ thể của hành động là 1 đối tượng (object) có type là WebElement. Ví dụ cho dễ hiểu:

driver.findElement(By.name("fname")).click();

Như bài trước đã có nói: Method findElement  trả lại 1 giá trị type WebElement, do đó: driver.findElement(By.name(“fname”)) —-> có type là WebElement.


  • Dùng để xóa hết các ký tự có trong 1 text field.
  • Ví dụ:
driver.findElement(By.name("fname")).clear();

  • Dùng để click vào 1 element, như button hoặc link
  • Ví dụ:
driver.findElement(By.id("submitButton")).click();

  • Dùng để lấy giá trị của attribute của element đó.
  • Ví dụ: 1 element như sau:
<img id="mainLogo" src="w3schools.jpg" width="104" height="142">
  • Muốn lấy các thông tin src, widtd, height
driver.findElement(By.id("mainLogo")).getAttribute("src")
driver.findElement(By.id("mainLogo")).getAttribute("width")
driver.findElement(By.id("mainLogo")).getAttribute("height")
  • Lưu ý: tất cả những giá trị lấy được sẽ có type String, nếu bạn muốn sử dụng như int, float thì phải convert type trước nhé.

  • Lấy các thông số CSS của element đó như là background, font, border…
  • Tham số cho method này là propertyName ở type String, property này lấy ở đâu? Bạn có thể lấy ngay ở Developer Tools của trình duyệt, hoặc ở đây.
  • Ví dụ:
WebElement searchTextBox= driver.findElement(By.id("lst-ib"));
String color= searchTextBox.getCssValue("background-color");

  • Dùng để lấy chiều cao, chiều rộng của element.
  • Type Dimension: có nghĩa là nó return về object của class Dimension, mà class Dimension lại có 2 method là getHeight() và getWidth()
  • Ví dụ:
Dimension dimesions = driver.findElement(By.id("gbqfsa")).getSize();
System.out.println("Width : " + dimesions.getWidth());
System.out.println("Height : " + dimesions.getHeight());

  • Dùng để lấy tag name của element.
  • Ví dụ có 1 element: <input name=”foo” />     —> kết quả là “input
String abc = driver.findElement(By.name("foo")).getTagName();

  • Lấy cái Text hiển thị ở trên page.
  • Ví dụ có 1 element như sau
<a href="xxx/login" class="button login -clicked">Log in</a>
String abc = driver.findElement(By.xpath("foo")).getText();
System.out.println(abc);

kết quả là "Log in"


  • Dùng để xác định xem cái element có đang hiển thị không, phục vụ cho việc debug, hoặc kiểm tra xem Test case pass hay fail.
    Ví dụ: Sau khi submit đúng –> sẽ có text “submit successful”. Nếu text này đang display có nghĩa là submit thành công.
  • Type Boolean: chỉ có 2 giá trị là True và False.
boolean isDisplay = driver.findElement(By.xpath("foo")).isDisplayed();
Assert.assertTrue(isDisplay);

  • Dùng để xác định xem cái element có đang được enable không, phục vụ cho việc debug hoặc làm điều kiện để thực hiện action.
  • Type Boolean: chỉ có 2 giá trị là True và False. Lưu ý: method này sẽ return True nếu element đó enable, ngoại trừ element Input.
if(driver.findElement(By.xpath("foo")).isEnabled()){ 
   /**Do something*/ 
} else { 
   /**Do something*/ 
}

  • Dùng để xác định xem cái element có đang được select hay không, phục vụ cho việc debug hoặc làm điều kiện để thực hiện action.
  • Ví dụ: bạn có 1 select box “Course” có 5 options và lúc nào cũng được chọn sẵn 1 option, vậy khi bạn muốn chọn 1 option thì bạn phải check xem là cái option của bạn đã được chọn hay chưa, nếu chưa thì bạn select, nếu có rồi thì bạn không cần select nữa.
if(driver.findElement(By.xpath("foo")).isSelected()){ 
  /**Do something*/ 
} else { 
  /**Do something*/ 
}

  • Dùng để nhập dữ liệu vào text field. Đây là method được dùng rất nhiều vì việc test gắn với việc nhập dữ liệu đầu vào.
driver.findElement(By.name("fname")).sendKeys("My First Name");

  • Dùng để submit 1 form, ta chỉ dùng được khi element đó có type=”submit” và nó nằm trong <form> tag.
  • Do đó:
    Nếu element’s type = “button” thì submit() không chạy được.
    Nếu button ở ngoài <form> tag thì submit() không chạy được.
  • Ví dụ
<form><input id="submitbutton" name="submitbutton" 
type="submit" value="Next step" class="g-button g-button-submit"></form>
driver.findElement(By.id("submitbutton")).submit();
0 0 votes
Article Rating
Subscribe
Notify of
guest
13 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback

[…] ← Previous Next → […]

trackback

[…] Trong đó, sendKeys() và click() là method của interface WebElement. […]

Thu Thuy
Thu Thuy
3 years ago

String abc = driver.findElement(By.xpath(“foo”)).getText();
System.out.println(abc);

Mình không hiểu By.xpath(“foo”) trong đoạn này?
Bạn có thể giải thích giúp rõ hơn không?

Thu Thuy
Thu Thuy
3 years ago
Reply to  Giang Nguyen

Thank you o.o

Thu Thuy
Thu Thuy
3 years ago
Reply to  Giang Nguyen

Log in

Nhưng trong đoạn ví dụ element trên không có “foo” mà nhỉ?

Ps: Giờ đọc lại lần nữa mới hiểu câu hỏi trước đó mình hỏi :v

Thu Thuy
Thu Thuy
3 years ago
Reply to  Giang Nguyen

Ví dụ cho getText() ý, hình như đang sai. Phần ví dụ của getTagName thì mình hiểu.

trackback

[…] là Actions. Class này cũng cấp những API để làm những tương tác phức tạp mà interface WebElement cung cấp. Ta có thể implement nó như […]

Lian Tran
Lian Tran
3 years ago

Anh ơi cho em hỏi, đoạn check error message hiển thị này, chỉ check nếu message có hiển thị là True, không hiển thị là False. Còn mình không check được text hiển thị có đúng hay không, nội dung nó match với expect results không à anh?

boolean isDisplay = driver.findElement(By.xpath(“foo”)).isDisplayed();
Assert.assertTrue(isDisplay);

Lian Tran
Lian Tran
2 years ago
Reply to  Giang Nguyen

Dạ, em chạy được rồi ạ.
Em cảm ơn anh nhiều ạ, nhờ seri của a mà e đã học được rất nhiều thứ :))