Як прокрутити сторінку вниз або вгору Selenium Веб-драйвер

Прокрутіть Selenium

Для прокручування використовуйте Selenium, Ви можете використовувати JavaІнтерфейс ScriptExecutor, який допомагає виконувати JavaМетоди сценарію через Selenium Веб-драйвер

Синтаксис:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Сценарій – це JavaСценарій, який потрібно виконати.
  • Аргументи – це аргументи сценарію. Це необов'язково.

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("http://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("http://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("http://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("http://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

Що таке смуга прокрутки?

Смуга прокрутки дозволяє переміщатися по екрану в горизонтальному або вертикальному напрямку, якщо прокручування поточної сторінки не вміщується у видиму область екрана. Використовується для переміщення вікна вгору та вниз.

Selenium Webdriver не потребує прокручування для виконання дій, оскільки він маніпулює DOM. Але на деяких веб-сторінках елементи стають видимими лише тоді, коли користувач прокручує їх. У таких випадках може знадобитися прокручування.

Смуга прокрутки буває двох типів: Горизонтальний та вертикальний смугу прокрутки, як показано на знімку екрана нижче.

смуга прокрутки

смуга прокрутки

Підсумки

  • У наведеному вище посібнику ми проілюструємо прокручування веб-сторінки в різних сценаріях.
  • У першому сценарії ми показали прокручування сторінок за пікселями вниз.
  • У другому сценарії ми показали прокручування сторінки вниз, доки елемент не стане видимим.
  • У третьому сценарії ми показали прокручування сторінки вниз у нижній частині сторінки.
  • У четвертому сценарії проілюстровано горизонтальне прокручування веб-сторінки.