Що таке смуга прокрутки?
Панель прокрутки - це дозволяє переміщатися по екрану в горизонтальному або вертикальному напрямку, якщо поточна прокрутка сторінки не відповідає видимій області екрана. Застосовується для переміщення вікна вгору і вниз.
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 ();", Елемент);
Аналіз результатів: Ось результат, коли ви виконуєте наведений вище сценарій.
Резюме
- У наведеному вище підручнику ми проілюструємо прокручування веб-сторінки за різними сценаріями.
- У першому сценарії ми показали прокручування сторінки на піксель вниз.
- У другому сценарії ми показали прокручування сторінки до видимого елемента.
- У третьому сценарії ми показали прокручування сторінки внизу сторінки.
- У четвертому сценарії проілюстровано горизонтальну прокрутку на веб-сторінці.