Як прокрутити сторінку вниз або вгору в Selenium Webdriver

Зміст:

Anonim

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

Панель прокрутки - це дозволяє переміщатися по екрану в горизонтальному або вертикальному напрямку, якщо поточна прокрутка сторінки не відповідає видимій області екрана. Застосовується для переміщення вікна вгору і вниз.

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

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

Прокрутіть у селені

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

Дізнайтеся більше про JavaScriptExecutor

Синтаксис:

JavascriptExecutor js = (JavascriptExecutor) драйвер;js.executeScript (сценарій, аргументи);
  • Сценарій - це JavaScript, який потрібно виконати.
  • Аргументи - це аргументи сценарію. Це необов’язково.

Селеновий сценарій, щоб прокрутити сторінку вниз

Давайте подивимося прокрутку веб-сторінки вниз за допомогою веб-драйвера selenium із наступними 3 сценаріями:

  • Сценарій 1: Прокрутити веб-сторінку вниз за пікселем.
  • Сценарій 2: Прокрутити веб-сторінку вниз за видимістю елемента.
  • Сценарій 3: Щоб прокрутити веб-сторінку внизу сторінки.
  • Сценарій 4: Горизонтальне прокручування веб-сторінки.

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

Селеновий сценарій

імпорт org.openqa.selenium.JavascriptExecutor;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.chrome.ChromeDriver;імпорт org.testng.annotations.Test;публічний клас 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-pixels - це число по осі x, воно рухається вліво, якщо число додатне, і воно рухається вправо, якщо число від'ємне. y-pixels - це число по осі y, воно рухається вниз, якщо число позитивне і воно рухається вгору, якщо число від’ємне.

Приклад:

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

Аналіз результатів: Ось результат, коли ви виконуєте наведений вище сценарій.

Сценарій 2: Прокрутити веб-сторінку вниз за видимістю елемента.

Селеновий сценарій

імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.JavascriptExecutor;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.WebElement;імпорт org.openqa.selenium.chrome.ChromeDriver;імпорт 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/");// Знайти елемент за текстом посилання та зберегти у змінній "Елемент"WebElement Element = driver.findElement (By.linkText ("Linux"));// Це буде прокручувати сторінку, поки елемент не буде знайденийjs.executeScript ("аргументи [0] .scrollIntoView ();", Елемент);}}

Опис сценарію: У наведеному вище коді ми спочатку запускаємо вказану URL-адресу у браузері Chrome. Далі прокрутіть сторінку, поки згаданий елемент не буде видно на поточній сторінці. Метод Javascript scrollIntoView () прокручує сторінку, доки згаданий елемент не буде повністю переглядати:

js.executeScript ("аргументи [0] .scrollIntoView ();", Елемент); 

"аргументи [0]" означає перший індекс сторінки, що починається з 0.

Де "Елемент" - це локатор на веб-сторінці.

Аналіз результатів: Ось результат, коли ви виконуєте наведений вище сценарій.

Сценарій 3: Щоб прокрутити веб-сторінку внизу сторінки.

Селеновий сценарій

імпорт org.openqa.selenium.JavascriptExecutor;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.chrome.ChromeDriver;імпорт org.testng.annotations.Test;публічний клас 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: Горизонтальне прокручування веб-сторінки.

Селеновий сценарій

імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.JavascriptExecutor;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.WebElement;імпорт org.openqa.selenium.chrome.ChromeDriver;імпорт org.testng.annotations.Test;публічний клас 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 ("аргументи [0] .scrollIntoView ();", Елемент);}}

Опис сценарію: У наведеному вище коді ми спочатку запускаємо вказану URL-адресу у браузері Chrome. Далі прокрутіть сторінку по горизонталі, поки згаданий елемент не буде видно на поточній сторінці. Метод Javascript scrollIntoView () прокручує сторінку, доки згаданий елемент не буде повністю переглядати:

js.executeScript ("аргументи [0] .scrollIntoView ();", Елемент);

Аналіз результатів: Ось результат, коли ви виконуєте наведений вище сценарій.

Резюме

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