Kuinka vierittää sivua alas tai ylös Selenium Web-ohjain

Selaa sisään Selenium

Voit vierittää käyttämällä Selenium, Voit käyttää JavaScriptExecutor-käyttöliittymä, joka auttaa suorittamaan JavaKäsikirjoitusmenetelmät läpi Selenium Web-ohjain

Syntaksi:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Käsikirjoitus – Tämä on JavaSuoritettava komentosarja.
  • Argumentit – Ne ovat käsikirjoituksen argumentit. Se on valinnainen.

Selenium Script vierittääksesi sivua alaspäin

Katsotaanpa Web-sivun vierittämistä alaspäin seleeni-webdriverillä seuraavilla 4 skenaariolla:

  • Skenaario 1: Web-sivun vierittäminen alaspäin pikseliltä.
  • Skenaario 2: Web-sivun vierittäminen alaspäin elementin näkyvyyden mukaan.
  • Skenaario 3: Voit vierittää verkkosivua alaspäin sivun alareunassa.
  • Skenaario 4: Vaakasuuntainen vieritys verkkosivulla.

Skenaario 1: Web-sivun vierittäminen alaspäin pikseliltä.

Selenium Käsikirjoitus

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("http://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)");
    }
}

Käsikirjoitus Descriptioni: Yllä olevassa koodissa käynnistämme ensin annetun URL-osoitteen Chrome-selaimessa. Vieritä seuraavaksi sivua 1000 pikseliä executeScriptin kautta. Javascript metodi ScrollBy() vierittää verkkosivua tiettyyn pikselien määrään.

ScrollBy()-menetelmien syntaksi on:

executeScript("window.scrollBy(x-pixels,y-pixels)");

x-pikseliä on luku x-akselilla, se liikkuu vasemmalle, jos luku on positiivinen ja se liikkuu oikealle, jos luku on negatiivinen .y-pikseliä on luku y-akselilla, se liikkuu alas, jos luku on positiivinen ja se siirtyy ylöspäin, jos luku on negatiivinen.

Esimerkiksi:

js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels

Tulosanalyysi: Tässä on tulos, kun suoritat yllä olevan skriptin.

Vieritä verkkosivua alaspäin pikselin mukaan

Skenaario 2: Web-sivun vierittäminen alaspäin elementin näkyvyyden mukaan.

Selenium Käsikirjoitus

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("http://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);
    }
}

Käsikirjoitus Descriptioni: Yllä olevassa koodissa käynnistämme ensin annetun URL-osoitteen Chrome-selaimessa. Vieritä seuraavaksi sivua, kunnes mainittu elementti näkyy nykyisellä sivulla. Javascript metodi scrollIntoView() vierittää sivua, kunnes mainittu elementti on täysissä näkyvissä:

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

"argumentit[0]" tarkoittaa sivun ensimmäistä hakemistoa, joka alkaa 0:sta.

Missä "Elementti" on paikannus verkkosivulla.

Tulosanalyysi: Tässä on tulos, kun suoritat yllä olevan skriptin.

Vieritä verkkosivua alaspäin elementin näkyvyyden mukaan

Skenaario 3: Voit vierittää verkkosivua alaspäin sivun alareunassa.

Selenium Käsikirjoitus

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

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

Käsikirjoitus Descriptioni: Yllä olevassa koodissa käynnistämme ensin annetun URL-osoitteen Chrome-selaimessa. Vieritä seuraavaksi sivun alaosaan. Javascript metodi scrollTo() vieritä sivun loppuun asti .

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

"document.body.scrollHeight" palauttaa rungon eli verkkosivun koko korkeuden.

Tulosanalyysi: Tässä on tulos, kun suoritat yllä olevan skriptin.

Vieritä Web-sivua alas sivun alareunassa

Skenaario 4: Vaakasuuntainen vieritys verkkosivulla

Selenium Käsikirjoitus

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("http://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);
    }
}

Käsikirjoitus Descriptioni: Yllä olevassa koodissa käynnistämme ensin annetun URL-osoitteen Chrome-selaimessa. Vieritä seuraavaksi sivua vaakasuunnassa, kunnes mainittu elementti näkyy nykyisellä sivulla. Javascript metodi scrollIntoView() vierittää sivua, kunnes mainittu elementti on täysissä näkyvissä:

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

Tulosanalyysi: Tässä on tulos, kun suoritat yllä olevan skriptin.

Vaakasuora vieritys Web-sivulla

Lisätietoja JavaScriptExecutor

Mikä on vierityspalkki?

Vierityspalkin avulla voit liikkua näytöllä vaaka- tai pystysuunnassa, jos nykyinen sivun vieritys ei mahdu näytön näkyvälle alueelle. Sitä käytetään liikuttamaan ikkunaa ylös ja alas.

Selenium Webdriver ei vaadi vieritystä toimintojen suorittamiseen, koska se käsittelee DOM:ia. Mutta tietyillä verkkosivuilla elementit tulevat näkyviin vasta, kun käyttäjä on vierittänyt niitä. Tällaisissa tapauksissa vieritys voi olla tarpeen.

Vierityspalkki on kahden tyyppinen: Vaakasuora ja pystysuora vierityspalkki alla olevan kuvakaappauksen mukaisesti.

scrollbar

scrollbar

Yhteenveto

  • Yllä olevassa opetusohjelmassa havainnollistamme verkkosivun vieritystä eri skenaarioissa.
  • Ensimmäisessä skenaariossa näytimme vierityksen alaspäin sivu kerrallaan.
  • Toisessa skenaariossa näytimme sivun vierittämistä alaspäin, kunnes elementti tuli näkyviin.
  • Kolmannessa skenaariossa näytimme sivun alareunassa vierityksen.
  • Neljännessä skenaariossa kuvattu vaakasuuntainen vieritys verkkosivulla.