Як прокрутити сторінку вниз або вгору Selenium Веб-драйвер
⚡ Розумний підсумок
Прокручування сторінки Selenium WebDriver використовує JavascriptІнтерфейс виконавця для запуску JavaКоманди прокручування скриптів, оскільки WebDriver маніпулює DOM безпосередньо. Чотири практичні сценарії охоплюють прокручування по пікселях, до елемента, до низу сторінки та горизонтальне прокручування.

Прокрутіть Selenium
Для прокручування використовуйте Selenium, Ви можете використовувати JavaІнтерфейс ScriptExecutor, який допомагає виконувати JavaМетоди сценарію через Selenium Веб-драйвер
Синтаксис:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- Сценарій – це JavaСценарій, який потрібно виконати.
- Аргументи – це аргументи сценарію. Це необов'язково.
Що таке смуга прокрутки?
Смуга прокрутки дозволяє переміщатися по екрану в горизонтальному або вертикальному напрямку, якщо прокручування поточної сторінки не вміщується у видиму область екрана. Використовується для переміщення вікна вгору та вниз.
Selenium Webdriver не потребує прокручування для виконання дій, оскільки він маніпулює DOM. Але на деяких веб-сторінках елементи стають видимими лише тоді, коли користувач прокручує їх. У таких випадках може знадобитися прокручування.
Смуга прокрутки буває двох типів: Горизонтальний та вертикальний смугу прокрутки, як показано на знімку екрана нижче.
Selenium Скрипт для прокручування сторінки вниз
Давайте подивимося на прокручування веб-сторінки вниз за допомогою веб-драйвера selenium із наступними 4 сценаріями:
- Сценарій 1: щоб прокрутити веб-сторінку на піксель вниз.
- Сценарій 2: прокручування веб-сторінки вниз на видимість елемента.
- Сценарій 3: щоб прокрутити веб-сторінку в нижній частині сторінки.
- Сценарій 4: Горизонтальна прокрутка веб-сторінки.
Сценарій 1: щоб прокрутити веб-сторінку на піксель вниз.
Selenium Script
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("https://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)"); } }
Script DescriptіонУ наведеному вище коді спочатку ми запускаємо заданий URL у браузері Chrome. Далі прокрутіть сторінку на 1000 пікселів за допомогою executeScript. Javascript Метод ScrollBy() прокручує веб-сторінку на певну кількість пікселів.
Синтаксис методів ScrollBy() такий:
executeScript("window.scrollBy(x-pixels,y-pixels)");
x-пікселі – це число на осі x, воно переміщується ліворуч, якщо число додатне, і вправо, якщо число від’ємне. y-пікселі – це число на осі y, воно рухається вниз, якщо число є додатне, і воно рухається вгору, якщо число від’ємне.
приклад:
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels
Аналіз результатів: Ось вихідні дані, коли ви виконуєте наведений вище сценарій.
Сценарій 2: прокручування веб-сторінки вниз на видимість елемента.
Selenium Script
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("https://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); } }
Script Descriptіон: У наведеному вище коді ми спочатку запускаємо вказану URL-адресу в браузері Chrome. Далі прокрутіть сторінку, поки згаданий елемент не стане видимим на поточній сторінці. Javascript метод scrollIntoView() прокручує сторінку, доки згаданий елемент не буде повністю видно:
js.executeScript("arguments[0].scrollIntoView();",Element );
«arguments[0]» означає перший індекс сторінки, що починається з 0.
Де «Елемент» є локатором на веб-сторінці.
Аналіз результатів: Ось вихідні дані, коли ви виконуєте наведений вище сценарій.
Сценарій 3: щоб прокрутити веб-сторінку в нижній частині сторінки.
Selenium Script
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("https://demo.guru99.com/test/guru99home/"); //This will scroll the web page till end. js.executeScript("window.scrollTo(0, document.body.scrollHeight)"); } }
Script Descriptіон: У наведеному вище коді ми спочатку запускаємо вказану URL-адресу в браузері Chrome. Далі прокрутіть до кінця сторінки. Javascript метод scrollTo() прокрутити до кінця сторінки.
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
“document.body.scrollHeight” повертає повну висоту тіла, тобто веб-сторінки.
Аналіз результатів: Ось вихідні дані, коли ви виконуєте наведений вище сценарій.
Сценарій 4: Горизонтальна прокрутка веб-сторінки
Selenium Script
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 HorizontalScroll { WebDriver driver; @Test public void ScrollHorizontally() { System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe"); driver = new ChromeDriver(); JavascriptExecutor js = (JavascriptExecutor) driver; // Launch the application driver.get("https://demo.guru99.com/test/guru99home/scrolling.html"); WebElement Element = driver.findElement(By.linkText("VBScript")); //This will scroll the page Horizontally till the element is found js.executeScript("arguments[0].scrollIntoView();", Element); } }
Script Descriptіон: У наведеному вище коді ми спочатку запускаємо вказану URL-адресу в браузері Chrome. Далі прокрутіть сторінку горизонтально, доки згаданий елемент не стане видимим на поточній сторінці. Javascript метод scrollIntoView() прокручує сторінку, доки згаданий елемент не буде повністю видно:
js.executeScript("arguments[0].scrollIntoView();",Element );
Аналіз результатів: Ось вихідні дані, коли ви виконуєте наведений вище сценарій.
Дізнатися більше про JavaScriptExecutor






