Selenium webdriver: sự khác nhau giữa get() và navigate().to()

416

Bài viết được sự cho phép của tác giả Tô Thị Vân Anh

Để đáp ứng đủ số lượng bài viết – mục tiêu đã đặt ra từ hồi đầu năm, mà nay thì đã là tuần thứ 20 – tức là nửa cuối của tháng 5 rồi, nên mình phải gấp rút chuẩn bị từ bây giờ ( -.- thật là biết nhìn xa trông rộng quá đi :v ), và vì vậy thì mình không thể lười thêm nữa. Hễ có ý tưởng là mình sẽ gõ ngay và luôn, như bài này chẳng hạn. Tất cả chỉ là sự tình cờ và mình chưa hề có ý định là sẽ nói về cái này!

  Làm quen: Tóm tắt cơ bản về Selenium
  Mã hóa mật khẩu trong Selenium Webdriver

Không lan man nữa, bài viết hôm nay sẽ cùng các bạn làm sáng tỏ sự khác nhau giữa hai method get() và navigate() trong Selenium nhé.

google-chrome-logo

get(“URL”)

Một method vô cùng, vô cùng quen thuộc với tất cả chúng ta là get(“url”), ở đây bạn sẽ đưa vào đường dẫn của trang web, ứng dụng web mà bạn muốn mở nó lên thông qua selenium, ví dụ:

driver.get(“http://www.google.com&#8221😉

Tức là khi bạn đưa câu lệnh trên vào thì sau khi trình duyệt được bật lên, nó sẽ đi đến ngay trang web đấy. Ok chỗ này rồi nhé. Với method GET này thì nó sẽ tải về toàn bộ trang web, page source hay text của trang web đó. Method này nó sẽ chờ cho đến khi toàn bộ dữ liệu của trang web được lấy xuống trước khi quay trở lại thực hiện các bước tiếp theo trong script của chúng ta. Tuy nhiên sẽ gặp phải rắc rối khi mà trang web sử dụng nhiều AJAX thì Webdriver khó có thể xác định được là việc load đấy đã được hoàn thành hay chưa, và giải pháp cho vấn đề này chính là sử dụng Wait. 😀

Và như bạn đã thấy là để thực hiện điều hướng đến một trang web ta sử dụng câu lệnh get (driver.get(“http://www.example.com“)), và nó cũng đơn giản chỉ là một cách viết khác của câu lệnh này mà thôi:

driver.navigate().to(“http://example.com&#8221😉

Nhấn mạnh với các bạn rằng hai method get() và navigate().to() thực hiện một việc giống y như nhau. Khác nhau là một cái được viết nhanh gọn hơn cái kia mà thôi. Nhớ đoạn này để còn đi phỏng vấn nhỡ đâu được hỏi!

Navigate interface cũng có mở rộng hỗ trợ chúng ta có thể điều hướng từ trang web hiện tại quay lại trang web trước đó, hoặc sau đó với method và cú pháp như sau:

driver.navigate().forward();

driver.navigate().back();

Tặng thêm các bạn hình này, dịch được thì tốt nhé, tóm lại là ý nghĩa của thằng get() và navigate().to() là như nhau :v

DnQyD

Các bạn cũng có thể tham khảo trên hướng dẫn của Selenium theo đường dẫn này https://docs.seleniumhq.org/docs/03_webdriver.jsp nhé!

Đây là đoạn mà mình tìm được:

Capture

Lười dịch thì chỉ cần chú ý câu này “navigate().to() and “get()” do exactly the same thing“. thế là được nhé. Tại sao người ta dùng get() nhiều hơn, và tại sao dường như nó phổ biến hơn? Thì tại vì gõ từ get nhanh hơn =))

Chúc các bạn đầu tuần vui vẻ nhé! Mùa hè đã chính thức bắt đầu, đừng vì nóng quá mà bỏ bê học hành nhé! hehe

Bài viết gốc được đăng tải tại vananhtooo.wordpress.com

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev