Cách cuộn xuống hoặc LÊN một trang trong Selenium Webdriver

Mục lục:

Anonim

Thanh cuộn là gì?

Scrollbar 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 DOM. Nhưng trong một số trang web nhất định, các phần tử 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 di chuyển có thể là cần thiết.

Thanh cuộn có hai loại: Thanh cuộn ngangdọc như được hiển thị trong ảnh chụp màn hình bên dưới.

Cuộn trong Selenium

Để 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

Tìm hiểu thêm về JavaScriptExecutor

Cú pháp:

Trình điều khiển JavascriptExecutor js = (JavascriptExecutor);js.executeScript (Tập lệnh, Đối số);
  • Tập lệnh - Đây là JavaScript cần thực thi.
  • Đối số - Đó là các đối số cho tập lệnh. Nó là tùy chọn.

Selenium Script để cuộn xuống trang

Hãy xem cuộn xuống một trang web bằng cách sử dụng trình duyệt web selen với 3 tình huống sau:

  • Tình huống 1: Để cuộn trang web xuống theo pixel.
  • Tình huống 2: Để cuộn xuống trang web theo khả năng hiển thị của phần tử.
  • Tình huống 3: Để cuộn trang web xuống cuối trang.
  • Tình huống 4: Cuộn ngang trên trang web.

Tình huống 1: Để cuộn trang web xuống theo pixel.

Tập lệnh Selenium

nhập org.openqa.selenium.JavascriptExecutor;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.chrome.ChromeDriver;nhập org.testng.annotations.Test;lớp công khai ScrollByPixel {Trình điều khiển WebDriver;@Kiểm trapublic void ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");driver = new ChromeDriver ();Trình điều khiển JavascriptExecutor js = (JavascriptExecutor);// Chạy chương trìnhdriver.get ("http://demo.guru99.com/test/guru99home/");// Để phóng to cửa sổ. Mã này có thể không hoạt động với lọ Selenium 3. Nếu tập lệnh không thành công, bạn có thể xóa dòng bên dướidriver.manage (). window (). Maxim ();// Thao tác này sẽ cuộn xuống trang theo chiều dọc 1000 pixeljs.executeScript ("window.scrollBy (0,1000)");}}

Mô tả tập lệnh : 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 1000 pixel thông qua executeScript. Phương thức Javascript ScrollBy () cuộn trang web đến một số pixel cụ thể.

Cú pháp của các phương thức ScrollBy () là:

executeScript ("window.scrollBy (x-pixel, y-pixel)");

x-pixel là số tại trục x, nó di chuyển sang trái nếu số dương và di chuyển sang phải nếu số âm .y-pixel là số tại trục y, nó di chuyển xuống dưới nếu số dương và nó di chuyển lên trên nếu số âm.

Thí dụ:

js.executeScript ("window.scrollBy (0,1000)"); // Cuộn theo chiều dọc xuống 1000 pixel 

Phân tích đầu ra: Đây là kết quả đầu ra khi bạn thực hiện đoạn mã trên.

Tình huống 2: Để cuộn xuống trang web theo khả năng hiển thị của phần tử.

Tập lệnh Selenium

nhập org.openqa.selenium.By;nhập org.openqa.selenium.JavascriptExecutor;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.WebElement;nhập org.openqa.selenium.chrome.ChromeDriver;nhập org.testng.annotations.Test;lớp công khai ScrollByVbrokenElement {Trình điều khiển WebDriver;@Kiểm trapublic void ByVbrokenElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");driver = new ChromeDriver ();Trình điều khiển JavascriptExecutor js = (JavascriptExecutor);//Chạy chương trìnhdriver.get ("http://demo.guru99.com/test/guru99home/");// Tìm phần tử theo văn bản liên kết và lưu trữ trong biến "Phần tử"Phần tử WebElement = driver.findElement (By.linkText ("Linux"));// Thao tác này sẽ cuộn trang cho đến khi phần tử được tìm thấyjs.executeScript ("đối số [0] .scrollIntoView ();", Phần tử);}}

Mô tả tập lệnh: 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 ("đối số [0] .scrollIntoView ();", Phần tử); 

"đối số [0]" có nghĩa là chỉ mục đầu tiên của trang bắt đầu từ 0.

Trong đó "Phần tử" là bộ định vị trên trang web.

Phân tích đầu ra: Đây là kết quả đầu ra khi bạn thực hiện đoạn mã trên.

Tình huống 3: Để cuộn trang web xuống cuối trang.

Tập lệnh Selenium

nhập org.openqa.selenium.JavascriptExecutor;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.chrome.ChromeDriver;nhập org.testng.annotations.Test;lớp công khai ScrollByPage {Trình điều khiển WebDriver;@Kiểm trapublic void ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");driver = new ChromeDriver ();Trình điều khiển JavascriptExecutor js = (JavascriptExecutor);// Chạy chương trìnhdriver.get ("http://demo.guru99.com/test/guru99home/");// Điều này sẽ cuộn trang web cho đến khi kết thúc.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}

Mô tả tập lệnh: 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)"); 

"document.body.scrollHeight" trả về chiều cao hoàn chỉnh của phần nội dung tức là trang web.

Phân tích đầu ra: Đây là kết quả đầu ra khi bạn thực hiện đoạn mã trên.

Tình huống 4: Cuộn ngang trên trang web.

Tập lệnh Selenium

nhập org.openqa.selenium.By;nhập org.openqa.selenium.JavascriptExecutor;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.WebElement;nhập org.openqa.selenium.chrome.ChromeDriver;nhập org.testng.annotations.Test;lớp công khai HorizontalScroll {Trình điều khiển WebDriver;@Kiểm trapublic void ScrollHorizooter () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");driver = new ChromeDriver ();Trình điều khiển JavascriptExecutor js = (JavascriptExecutor);// Chạy chương trìnhdriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");Phần tử WebElement = driver.findElement (By.linkText ("VBScript"));// Thao tác này sẽ cuộn trang theo chiều ngang cho đến khi phần tử được tìm thấyjs.executeScript ("đối số [0] .scrollIntoView ();", Phần tử);}}

Mô tả tập lệnh: 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 ("đối số [0] .scrollIntoView ();", Phần tử);

Phân tích đầu ra: Đây là kết quả đầu ra khi bạn thực hiện đoạn mã trên.

Tóm lược

  • Trong hướng dẫn trên, chúng tôi minh họa việc cuộn trang web thông qua các tình huống khác nhau.
  • Trong kịch bản đầu tiên, chúng tôi hiển thị cuộn xuống từng trang từng pixel.
  • Trong kịch bản thứ hai, chúng tôi hiển thị cuộn xuống của trang cho đến khi phần tử hiển thị.
  • Trong tình huống thứ ba, chúng tôi hiển thị cuộn xuống trang ở cuối trang.
  • Trong tình huống thứ tư, minh họa cuộn ngang trên trang web.