Как да превъртите страницата надолу или нагоре Selenium Уебдрайвер

⚡ Умно обобщение

Превъртане на страница навътре Selenium WebDriver използва JavascriptИзпълнителен интерфейс за изпълнение JavaКоманди за скролиране чрез скриптове, защото WebDriver манипулира DOM директно. Четири практически сценария обхващат скролиране по пиксел, до елемент, до края на страницата и хоризонтално.

  • 📜 JavascriptИзпълнител: Писти JavaКоманди за превъртане на скриптове Selenium WebDriver.
  • 🔢 Превъртане по пиксел: window.scrollBy(x,y) премества страницата с зададен брой пиксели.
  • 🎯 Превъртете до елемента: scrollIntoView() превърта, докато целевият елемент стане напълно видим.
  • ⬇️ Превъртете до долу: scrollTo с document.body.scrollHeight достига края на страницата.
  • ↔️ Хоризонтално превъртане: scrollIntoView също се движи странично към елементи извън екрана.
  • 🧭 Основи на лентата за превъртане: Превъртането разкрива елементи, които се зареждат само когато влязат в изгледа.

Превъртете страницата надолу или нагоре Selenium уебдрайвер

Превъртете Selenium

За да превъртите с помощта на Selenium, Можете да използвате JavaScriptExecutor интерфейс, който помага за изпълнение JavaСкрипт методи чрез Selenium Уебдрайвер

Синтаксис:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Сценарий – Това е JavaСкрипт, който трябва да се изпълни.
  • Аргументи – това са аргументите към скрипта. Не е задължително.

Какво е лента за превъртане?

Лентата за превъртане ви позволява да се движите по екрана в хоризонтална или вертикална посока, ако текущото превъртане на страницата не се побира във видимата област на екрана. Използва се за преместване на прозореца нагоре и надолу.

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

Лентата за превъртане е два вида: Хоризонтален намлява вертикален лента за превъртане, както е показано на екранната снимка по-долу.

плъзгач

плъзгач

Selenium Скрипт за превъртане надолу по страницата

Нека да видим превъртането надолу на уеб страница с помощта на selenium webdriver със следните 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 );

„аргументи[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

Въпроси и Отговори

Използвайте отрицателна стойност на пиксела с window.scrollBy, например js.executeScript с window.scrollBy(0,-1000). Отрицателната стойност на y премества страницата нагоре, обратно на положителната стойност, която превърта надолу.

Да. Можете да изпратите Keys.PAGE_DOWN, Keys.END или клавиши със стрелки към елемент или да използвате класа Actions в Selenium 4. JavascriptИзпълнителят остава най-гъвкавият вариант.

Браузърите заснемат само видимия viewport, така че скриптовете превъртат през страницата, заснемат секции и ги слепват. Превъртането също така задейства лениво заредени изображения и съдържание преди екранната снимка.

Да. Асистентите с изкуствен интелект създават фрагменти scrollBy, scrollIntoView и scrollTo от обикновени инструкции и обясняват пикселната математика. RevПрегледайте локаторите и условията за изчакване, преди да ги пуснете във вашия апартамент.

Инструментите, управлявани от изкуствен интелект, откриват кога новото съдържание спира да се зарежда, динамично регулират дълбочината на превъртане и интелигентно чакат елементи. Това автоматизира тестването на емисии с безкрайно превъртане без твърдо кодиран брой пиксели.

scrollBy премества страницата с фиксиран брой пиксели от текущата позиция. scrollIntoView превърта, докато се види определен елемент. Използвайте scrollBy за разстояние и scrollIntoView за насочване към елементи.

Обобщете тази публикация с: