[Bài 4] Những method của interface WebDriver

Vấn đề khi học selenium Webdriver:

Hầu hết các tester khi học đến Selenium Webdriver đều có thể viết được những đoạn script đơn giản sau khi copy code từ trên mạng hoặc là làm theo những video hướng dẫn nhưng sau đó muốn mở rộng, học thêm các câu lệnh khác thì không biết phải học và tìm ở đâu.

Mình lúc đầu học cũng vậy, người ta bảo gì thì biết nấy thôi, không biết vì sao lại thế. Nên mình sẽ viết một vài bài để hướng dẫn các bạn cách đọc document hướng dẫn của selenium và tiện thể mình sẽ viết về 1 số method của Webdriver, WebElement, Alert…

Bài viết có 2 phần:

  • Document API của selenium Webdriver.
  • Những method của interface WebDriver.

I. Document API của selenium Webdriver.

Document API nằm ở đâu?

Nó nằm ở trong chỗ này. https://www.seleniumhq.org/download/

Bạn đang sử dụng ngôn ngữ nào thì đọc phần tương ứng, ở đây mình dùng Java nên sẽ sử dụng Javadoc.

II. Những method của interface WebDriver.

Interface WebDriver nằm trong pagekage org.openqa.selenium. 

Trong cái WedDriver này có những gì? Nó gồm có 2 phần:

  1. Nested Class Summary
    Những Class nằm trong interface, phần này mình sẽ giới thiệu sau.
  2. Method Summary
    Bao gồm những method trong interface mà các bạn hay dùng với instance driver.

  • Dùng để đóng browser đang run. Nếu có 3 firefox đang được control bằng driver thì chỉ có cái firefox đang active được đóng thôi.
  • Type void: Có nghĩa là nó ko trả lại cái gì cả, do đó chỉ cần viết

  • Tìm kiếm cái element đầu tiên mà match với điều kiện, chỉ lấy 1 element duy nhất.
  • Type WebElement: có nghĩa là nó sẽ return lại 1 giá trị loại WebElement.
  • Có thể viết các kiểu sau đây.

    hoặc


  • Tìm kiếm tất cả các element mà match với điều kiện
  • Type java.util.List<WebElement>: nó sẽ return lại 1 list các giá trị loại WebElement.
  • Có thể viết code như sau:



    Và vì đây là list nên để tương tác với từng element ở trong list thì chúng ta thường sẽ sử dụng vòng lặp. Ví dụ:

  • Mở 1 page mới ở trên browser hiện tại.
  • Ví dụ:

  • Lấy cái url mà browser đang chạy ở thời điểm hiện tại
  • Type String: nó sẽ return lại 1 giá trị kiểu String.
  • Cái này có thể dùng trong trường hợp debug, 1 test case của mình trải qua nhiều action mà giữa chừng nó chết, mình dùng method này để có thêm thông tin rồi fix issue. Cú pháp tương đối đơn giản:

  • Lấy toàn bộ source HTML ở thời điểm hiện tại, bạn có thể chọn “View Page Source” khi click chuột phải vào 1 page hoặc Ctrl+U để xem.
  • Type String: nó sẽ return lại 1 giá trị kiểu String.
  • Code đơn giản:

  • Lấy cái Title page mà browser đang chạy ở thời điểm hiện tại
  • Type String: nó sẽ return lại 1 giá trị kiểu String.
  • Code:

  • Lấy cái “mã số” của cái browser đang run.
  • Type String: nó sẽ return lại 1 giá trị kiểu String.
  • Cái này thường được dùng khi xử lý những phần có nhiều browser. Ví như: Click vào 1 đường link ở page hiện tại, nó open 1 browser mới. Mỗi browser này sẽ có 1 mã số để phân biệt chúng với nhau.
  • Code:

  • Lấy cái toàn bộ các “mã số” của các browser đang run mà có sử dụng instance driver. Ví dụ nếu 1 cái browser mở lên do mình tự mở, ko phải selenium thì sẽ ko lấy đc “mã số”.
  • Type java.util.Set<java.lang.String>: nó sẽ return lại 1 Set các giá trị kiểu String, Set có ý nghĩa là sẽ không có dữ liệu bị lặp.
  • Tương tự phần findelements(), để tương tác được với Set thì ta dùng vòng lặp. Ví dụ:

    hoặc ta cũng có thể add những giá trị này vào 1 array rồi sử dụng, vì array sẽ hỗ trợ việc đánh index cho các giá trị.

  • Get cái interface Options
  • Ví dụ: Phóng to cái browser.

  • Get cái interface Navigation
  • Ví dụ: Back lại page trước

  • Dùng để đóng tất cả các instance browser đang được control bằng driver.
  • Ví dụ:

  • Get cái interface TargetLocator
  • Ví dụ: Chuyển driver sang 1 phần tử ngoài page ví dụ: window khác, alert, iframe.

 

Cuối cùng cũng hết, dài quá, nếu có bất cứ thắc mắc các bạn hãy để lại comment nhé. Nếu thấy bài viết hữu ích, hãy share cho bạn tester nào đó đang học selenium Webdriver.  😀

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

4 thoughts on “[Bài 4] Những method của interface WebDriver

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

  2. Pingback: [Bài 3] Xác định elements bằng CSS Selector trong Selenium Webdriver | GiangTester Blog

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

  4. Pingback: [Bài 16] Mục đích chia Class và cấu trúc Project | GiangTester Blog

Leave a Reply

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