Как прокрутить страницу вниз или вверх в Selenium Webdriver

Содержание:

Anonim

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

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

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

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

Прокрутка в селене

Для прокрутки с помощью Selenium вы можете использовать интерфейс JavaScriptExecutor, который помогает выполнять методы JavaScript через Selenium Webdriver.

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

Синтаксис:

JavascriptExecutor js = (JavascriptExecutor) драйвер;js.executeScript (сценарий, аргументы);
  • Сценарий - это JavaScript, который необходимо выполнить.
  • Аргументы - это аргументы сценария. Это необязательно.

Selenium Script для прокрутки страницы вниз

Давайте посмотрим, как прокручивается веб-страница с помощью веб-драйвера selenium со следующими 3 сценариями:

  • Сценарий 1. Прокрутка веб-страницы по пикселям.
  • Сценарий 2: прокрутка веб-страницы вниз по видимости элемента.
  • Сценарий 3. Прокрутка веб-страницы внизу страницы.
  • Сценарий 4: горизонтальная прокрутка веб-страницы.

Сценарий 1. Прокрутка веб-страницы по пикселям.

Селен Скрипт

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;@Тестpublic void ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");драйвер = новый ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) драйвер;// Запускаем приложениеdriver.get ("http://demo.guru99.com/test/guru99home/");// Чтобы развернуть окно. Этот код может не работать с банками Selenium 3. Если сценарий не работает, вы можете удалить строку нижеdriver.manage (). window (). maximize ();// Это прокрутит страницу вниз на 1000 пикселей по вертикалиjs.executeScript ("window.scrollBy (0,1000)");}}

Описание сценария : в приведенном выше коде сначала мы запускаем указанный URL-адрес в браузере Chrome. Затем прокрутите страницу на 1000 пикселей с помощью executeScript. Метод Javascript ScrollBy () прокручивает веб-страницу до определенного количества пикселей.

Синтаксис методов ScrollBy ():

executeScript ("window.scrollBy (x-пикселей, y-пикселей)");

x-пикселей - это число на оси x, оно перемещается влево, если число положительное, и перемещается вправо, если число отрицательное. y-пикселей - это число на оси y, оно перемещается вниз, если число равно положительный, и он перемещается вверх, если число отрицательное.

Пример:

js.executeScript ("window.scrollBy (0,1000)"); // Прокрутка вертикально вниз на 1000 пикселей 

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

Сценарий 2: прокрутка веб-страницы вниз по видимости элемента.

Селен Скрипт

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;открытый класс ScrollByVisibleElement {Драйвер WebDriver;@Тестpublic void ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");драйвер = новый ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) драйвер;// Запускаем приложениеdriver.get ("http://demo.guru99.com/test/guru99home/");// Находим элемент по тексту ссылки и сохраняем в переменной "Element"WebElement Element = driver.findElement (By.linkText ("Linux"));// Это будет прокручивать страницу до тех пор, пока элемент не будет найденjs.executeScript ("arguments [0] .scrollIntoView ();", Элемент);}}

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

js.executeScript ("arguments [0] .scrollIntoView ();", Элемент); 

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

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

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

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

Селен Скрипт

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;@Тестpublic void ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");драйвер = новый ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) драйвер;// Запускаем приложениеdriver.get ("http://demo.guru99.com/test/guru99home/");// Это будет прокручивать веб-страницу до конца.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}

Описание скрипта: в приведенном выше коде мы сначала запускаем указанный URL-адрес в браузере Chrome. Затем прокрутите страницу до конца. Javascript-метод scrollTo () прокручивает страницу до конца.

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

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

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

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

Селен Скрипт

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;@Тестpublic void ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");драйвер = новый ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) драйвер;// Запускаем приложениеdriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");WebElement Element = driver.findElement (By.linkText ("VBScript"));// Это будет прокручивать страницу по горизонтали, пока элемент не будет найденjs.executeScript ("arguments [0] .scrollIntoView ();", Элемент);}}

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

js.executeScript ("arguments [0] .scrollIntoView ();", Элемент);

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

Резюме

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