SF

""

Scroll page với Selenium Webdriver

 

Scroll page với Selenium Webdriver



Để thực hiện thao tác này trong Selenium Webdriver, chúng ta phải sử dụng một interface có tên là Javascript Executor, nó cung cấp một cơ chế cho phép ta thực hiện execute Javascript. JavascriptExecutor có hai method là executescript và executeAsyncScript để run các Javascript trong frame được chọn hiện tại hoặc trong cửa sổ window nào đó được chọn. Bạn có thể hiểu một cách đơn giản hơn như này ‘Javascript có thể được execute trên trình duyệt nhờ sự hỗ trợ của Javascript Executor’.

1. Nếu bạn muốn thực hiện cuộn thanh cuộn dọc xuống để thực hiện một aciton nào đó, bạn có thể tham khảo dòng code này:

((JavascriptExecutor)
driver).executeScript (“window.scrollTo( 0, document.body.scrollHeight)”);


2.
  Nếu bạn muốn thực hiện cuộn thanh cuộn dọc xuống vị trí của một phần tử cụ thể nào đó trên trang web, thì đoạn code dưới đây có thể giúp bạn giải quyết vấn đề này:

// Vị trí của phần tử mà bạn muốn scroll xuống
WebElement element = driver.findElement(By.xpath(“//input [@id=’username’]”));
//Thực hiện run Javascript
((JavascriptExecutor)
driver).executeScript (“arguments[0].scrollIntoView();”, element);


3.
  Còn trong trường hợp bạn muốn cuộn xuống một tọa độ cụ thể nào đó trên trang ứng dụng, thì bạn có thể sử dụng dòng code sau:

// Ở đây (200, 300) chính là tọa độ mà bạn muốn scroll tới
((JavascriptExecutor) driver).executeScript(“window.scrollBy(200,300)”);


4.
 Bây giờ không muốn cuộn xuống nữa mà muốn cuộn chuột theo hướng lên trên thì làm thế nào:

((JavascriptExecutor)
driver).executeScript(“window.scrollTo(document.body.scrollHeight,0)”);


5.
 Bonus thêm trường hợp xử lý với cuộn thanh cuộn ngang sang bên phải:

((JavascriptExecutor)
driver).executeScript(“window.scrollBy(2000,0)”);


6.
 Trường hợp cuộn thanh cuộn ngang sang bên trái nhé:

((JavascriptExecutor)
driver).executeScript(“window.scrollBy(-2000,0)”);