Как прокрутить страницу вниз или вверх в 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 Сценарий

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)");
    }
}

Сценарий 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 Сценарий

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);
    }
}

Сценарий Descriptион: В приведенном выше коде мы сначала запускаем указанный URL-адрес в браузере Chrome. Затем прокрутите страницу до тех пор, пока упомянутый элемент не будет виден на текущей странице. Javascript метод ScrollIntoView() прокручивает страницу до тех пор, пока упомянутый элемент не окажется на виду:

js.executeScript("arguments[0].scrollIntoView();",Element );

«arguments[0]» означает первый индекс страницы, начинающийся с 0.

Где «Элемент» — это указатель на веб-странице.

Выходной анализ: Вот результат выполнения приведенного выше сценария.

Прокрутите веб-страницу вниз по видимости элемента

Сценарий 3. Прокрутка веб-страницы вниз в нижней части страницы.

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("https://demo.guru99.com/test/guru99home/");

        //This will scroll the web page till end.		
        js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
    }
}

Сценарий Descriptион: В приведенном выше коде мы сначала запускаем указанный URL-адрес в браузере Chrome. Далее прокрутите страницу до конца. Javascript Метод ScrollTo() прокручивает страницу до конца.

js.executeScript("window.scrollTo(0, document.body.scrollHeight)");

«document.body.scrollHeight» возвращает полную высоту тела, то есть веб-страницы.

Анализ результатов: Вот результат выполнения приведенного выше сценария.

Прокрутите веб-страницу вниз в нижней части страницы.

Сценарий 4. Горизонтальная прокрутка веб-страницы.

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 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);
    }
}

Сценарий Descriptион: В приведенном выше коде мы сначала запускаем указанный URL-адрес в браузере Chrome. Затем прокрутите страницу по горизонтали, пока упомянутый элемент не будет виден на текущей странице. Javascript метод ScrollIntoView() прокручивает страницу до тех пор, пока упомянутый элемент не окажется на виду:

js.executeScript("arguments[0].scrollIntoView();",Element );

Анализ результатов: Вот результат выполнения приведенного выше сценария.

Горизонтальная прокрутка на веб-странице

Узнать больше о JavaScriptExecutor

Что такое полоса прокрутки?

Полоса прокрутки позволяет перемещаться по экрану в горизонтальном или вертикальном направлении, если текущая прокрутка страницы не соответствует видимой области экрана. Используется для перемещения окна вверх и вниз.

Selenium Webdriver не требует прокрутки для выполнения действий, поскольку он манипулирует DOM. Но на некоторых веб-страницах элементы становятся видимыми только после того, как пользователь прокрутит их. В таких случаях может потребоваться прокрутка.

Полоса прокрутки бывает двух типов: горизонтальный и вертикальный полоса прокрутки, как показано на снимке экрана ниже.

полоса прокрутки

полоса прокрутки

Резюме

  • В приведенном выше уроке мы иллюстрируем прокрутку веб-страницы в различных сценариях.
  • В первом сценарии мы показали попиксельную прокрутку вниз.
  • Во втором сценарии мы показали прокрутку страницы вниз до тех пор, пока элемент не станет видимым.
  • В третьем сценарии мы показали прокрутку страницы вниз внизу страницы.
  • В четвертом сценарии проиллюстрирована горизонтальная прокрутка веб-страницы.