[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:

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ụ:

 


  • Dùng để click vào 1 element, như button hoặc link
  • Ví dụ:

 


  • Dùng để lấy giá trị của attribute của element đó.
  • Ví dụ: 1 element như sau:

  • Muốn lấy các thông tin src, widtd, 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ụ:

 


  • 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ụ:

 


  • Dùng để lấy tag name của element.
  • Ví dụ có 1 element: <input name=”foo” />     —> kết quả là “input

 


  • Lấy cái Text hiển thị ở trên page.
  • Ví dụ có 1 element như sau

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.

 


  • 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.

 


  • 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.

 


  • 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.

 


  • 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ụ

 

[Bài 6] Tạo WordPress site để thực hành Selenium

10 thoughts on “[Bài 5] Những method của interface WebElement

  1. Pingback: [Bài 4] Những method của interface WebDriver | GiangTester Blog

  2. Pingback: [Bài 7] Webdriver script đơn giản đầu tiên | GiangTester Blog

  3. 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?

    • WebElement findElement(By by) yêu cầu Tham số truyền vào là 1 Object loại By.
      By.xpath(“foo”): Class By gọi 1 static Method của nó có tên là xpath, và kết quả nó return về là 1 Object loại By.
      xpath(java.lang.String xpathExpression) là 1 Method của Class By: dùng để xác định vị trí của 1 element thông qua xpath.

      Tổng kết lại
      driver.findElement(By.xpath(“foo”)) có trình tự chạy code như sau:
      By.xpath(“foo”) sẽ xác định vị trí element nào có xpath là “foo”
      findElement() sẽ tìm kiếm và lấy cái element đầu tiên trong list các element có xpath “foo”

      • 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

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

          • Bạn chỉ rõ đang sai là sai như thế nào? getText là get visible text hiển thị trên UI, nó là cái giá trị nằm ngoài tag. Ví dụ ghi rất rõ:

            a href=”xxx/login” class=”button login -clicked” rel=”nofollow”>Log in

  4. Pingback: [Bài 19] Webdriver script đơn giản thứ ba | GiangTester Blog

Leave a Reply

Your email address will not be published. Required fields are marked *