Để cuộn bằng Selenium, bạn có thể sử dụng giao diện JavaScriptExecutor giúp thực thi các phương thức JavaScript thông qua Selenium Webdriver
cú pháp
JavascriptExecutor js = [JavascriptExecutor] driver; js.executeScript[Script,Arguments];
- Script – Đây là JavaScript cần thực thi
- Đối số - Đó là đối số cho tập lệnh. Đó là tùy chọn
Trong hướng dẫn Scroll in Selenium này, bạn sẽ học
- Cuộn trong Selenium
- cảnh 1. Để cuộn xuống trang web theo pixel
- kịch bản 2. Để cuộn xuống trang web theo khả năng hiển thị của phần tử
- kịch bản 3. Để cuộn xuống trang web ở cuối trang
- Tình huống 4. Cuộn ngang trên trang web
- Thanh cuộn là gì?
Selenium Script để cuộn xuống trang
Hãy cùng xem scroll down một trang web bằng Selenium webdriver với 4 tình huống sau
- cảnh 1. Để cuộn xuống trang web theo pixel
- kịch bản 2. Để cuộn xuống trang web theo khả năng hiển thị của phần tử
- kịch bản 3. Để cuộn xuống trang web ở cuối trang
- Tình huống 4. Cuộn ngang trên trang web
cảnh 1. Để cuộn xuống trang web theo pixel
Tập lệnh Selenium
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class ScrollByPixel { WebDriver driver; @Test public void ByPixel[] { System.setProperty["webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe"]; driver = new ChromeDriver[]; JavascriptExecutor js = [JavascriptExecutor] driver; // Launch the application driver.get["//demo.guru99.com/test/guru99home/"]; //To maximize the window. This code may not work with Selenium 3 jars. If script fails you can remove the line below driver.manage[].window[].maximize[]; // This will scroll down the page by 1000 pixel vertical js.executeScript["window.scrollBy[0,1000]"]; } }
Mô tả kịch bản. Trong đoạn mã trên, trước tiên, chúng tôi khởi chạy URL đã cho trong trình duyệt Chrome. Tiếp theo, cuộn trang theo 1000 pixel thông qua execScript. Phương thức Javascript ScrollBy[] cuộn trang web đến số pixel cụ thể
Cú pháp của các phương thức ScrollBy[] là
executeScript["window.scrollBy[x-pixels,y-pixels]"];
x-pixel là số ở trục x, nó di chuyển sang trái nếu số dương và nó di chuyển sang phải nếu số âm. y-pixel là số ở trục y, nó di chuyển xuống dưới nếu số dương và di chuyển lên trên nếu số âm
Thí dụ.
js.executeScript["window.scrollBy[0,1000]"]; //Scroll vertically down by 1000 pixels
phân tích đầu ra. Đây là kết quả khi bạn thực thi đoạn script trên
kịch bản 2. Để cuộn xuống trang web theo khả năng hiển thị của phần tử
Tập lệnh Selenium
import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class ScrollByVisibleElement { WebDriver driver; @Test public void ByVisibleElement[] { System.setProperty["webdriver.chrome.driver", "G://chromedriver.exe"]; driver = new ChromeDriver[]; JavascriptExecutor js = [JavascriptExecutor] driver; //Launch the application driver.get["//demo.guru99.com/test/guru99home/"]; //Find element by link text and store in variable "Element" WebElement Element = driver.findElement[By.linkText["Linux"]]; //This will scroll the page till the element is found js.executeScript["arguments[0].scrollIntoView[];", Element]; } }
Mô tả kịch bản. Trong đoạn mã trên, trước tiên chúng tôi khởi chạy url đã cho trong trình duyệt Chrome. Tiếp theo, cuộn trang cho đến khi phần tử được đề cập hiển thị trên trang hiện tại. Phương thức Javascript scrollIntoView[] cuộn trang cho đến khi phần tử được đề cập ở chế độ xem đầy đủ
js.executeScript["arguments[0].scrollIntoView[];",Element ];
“arguments[0]” có nghĩa là chỉ mục đầu tiên của trang bắt đầu từ 0
Trong đó một " Phần tử " là công cụ định vị trên trang web
phân tích đầu ra. Đây là kết quả khi bạn thực thi đoạn script trên
kịch bản 3. Để cuộn xuống trang web ở cuối trang
Tập lệnh Selenium
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class ScrollByPage { WebDriver driver; @Test public void ByPage[] { System.setProperty["webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe"]; driver = new ChromeDriver[]; JavascriptExecutor js = [JavascriptExecutor] driver; // Launch the application driver.get["//demo.guru99.com/test/guru99home/"]; //This will scroll the web page till end. js.executeScript["window.scrollTo[0, document.body.scrollHeight]"]; } }
Mô tả kịch bản. Trong đoạn mã trên, trước tiên chúng tôi khởi chạy url đã cho trong trình duyệt Chrome. Tiếp theo, cuộn đến cuối trang. Phương thức Javascript scrollTo[] cuộn đến cuối trang
js.executeScript["window.scrollTo[0, document.body.scrollHeight]"];
"tài liệu. thân hình. scrollHeight” trả về chiều cao đầy đủ của phần thân tôi. trang web điện tử
phân tích đầu ra. Đây là kết quả khi bạn thực thi đoạn script trên
Tình huống 4. Cuộn ngang trên trang web
Tập lệnh Selenium
________số 8Mô tả kịch bản. Trong đoạn mã trên, trước tiên chúng tôi khởi chạy url đã cho trong trình duyệt Chrome. Tiếp theo, cuộn trang theo chiều ngang cho đến khi phần tử được đề cập hiển thị trên trang hiện tại. Phương thức Javascript scrollIntoView[] cuộn trang cho đến khi phần tử được đề cập ở chế độ xem đầy đủ
js.executeScript["arguments[0].scrollIntoView[];",Element ];
phân tích đầu ra. Đây là kết quả khi bạn thực thi đoạn script trên
Tìm hiểu thêm về JavaScriptExecutor
Thanh cuộn là gì?
Thanh cuộn là một thanh cho phép bạn di chuyển xung quanh màn hình theo hướng ngang hoặc dọc nếu cuộn trang hiện tại không vừa với vùng hiển thị của màn hình. Nó được sử dụng để di chuyển cửa sổ lên và xuống
Selenium Webdriver không yêu cầu cuộn để thực hiện các hành động vì nó thao tác với DOM. Nhưng trong một số trang web nhất định, các thành phần chỉ hiển thị khi người dùng đã cuộn đến chúng. Trong những trường hợp như vậy, việc cuộn có thể cần thiết