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.
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.
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.
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.
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.
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.