Hogyan lehet görgetni lefelé vagy felfelé az oldalt Selenium Webdriver
Görgessen be Selenium
A görgetéshez Selenium, Akkor JavaA végrehajtást segítő ScriptExecutor felület JavaScript metódusokon keresztül Selenium Webdriver
Syntax:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- Szkript – Ez a JavaSzkript, amelyet végre kell hajtani.
- Érvek – A forgatókönyv érvei. Ez nem kötelező.
Selenium Script az oldalon lefelé görgetéshez
Nézzük meg, hogyan görgessünk lefelé egy weboldalt a szelén webdriver használatával a következő 4 forgatókönyv szerint:
- 1. forgatókönyv: A weboldal lefelé görgetése pixelenként.
- 2. forgatókönyv: A weboldal lefelé görgetése az elem láthatósága szerint.
- 3. forgatókönyv: A weboldal lefelé görgetése az oldal alján.
- 4. forgatókönyv: Vízszintes görgetés a weboldalon.
1. forgatókönyv: A weboldal lefelé görgetése pixelenként.
Selenium Forgatókönyv
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)"); } }
Forgatókönyv Description: A fenti kódban először elindítjuk a megadott URL-t a Chrome böngészőben. Ezután görgessen az oldalt 1000 képponttal az executeScript segítségével. Javascript Metódus ScrollBy() görgeti a weboldalt a megadott számú képpontig.
A ScrollBy() metódusok szintaxisa a következő:
executeScript("window.scrollBy(x-pixels,y-pixels)");
x-pixels az x-tengelyen lévő szám, balra mozog, ha a szám pozitív, és jobbra, ha a szám negatív .y-pixels az y-tengelyen lévő szám, lefelé mozog, ha a szám pozitív, és felfelé mozog, ha a szám negatív.
Példa:
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels
Kimenet elemzés: Ez a kimenet a fenti szkript futtatásakor.
2. forgatókönyv: A weboldal lefelé görgetése az elem láthatósága szerint.
Selenium Forgatókönyv
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); } }
Forgatókönyv Description: A fenti kódban először elindítjuk a megadott URL-t a Chrome böngészőben. Ezután görgessen addig az oldalon, amíg az említett elem meg nem jelenik az aktuális oldalon. Javascript A scrollIntoView() metódus addig görgeti az oldalt, amíg az említett elem teljes nézetben meg nem jelenik:
js.executeScript("arguments[0].scrollIntoView();",Element );
Az „argumentumok[0]” az oldal első indexét jelenti, amely 0-tól kezdődik.
Ahol egy " Elem " a lokátor a weboldalon.
Kimenet elemzés: Ez a kimenet a fenti szkript futtatásakor.
3. forgatókönyv: A weboldal lefelé görgetése az oldal alján.
Selenium Forgatókönyv
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)"); } }
Forgatókönyv Description: A fenti kódban először elindítjuk a megadott URL-t a Chrome böngészőben. Ezután görgessen az oldal aljáig. Javascript metódus scrollTo() görgessen az oldal végéig.
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
A „document.body.scrollHeight” a törzs, azaz a weboldal teljes magasságát adja vissza.
Kimenet elemzés: Ez a kimenet a fenti szkript futtatásakor.
4. forgatókönyv: Vízszintes görgetés a weboldalon
Selenium Forgatókönyv
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); } }
Forgatókönyv Description: A fenti kódban először elindítjuk a megadott URL-t a Chrome böngészőben. Ezután görgessen vízszintesen az oldalt, amíg az említett elem láthatóvá nem válik az aktuális oldalon. Javascript A scrollIntoView() metódus addig görgeti az oldalt, amíg az említett elem teljes nézetben meg nem jelenik:
js.executeScript("arguments[0].scrollIntoView();",Element );
Kimenet elemzés: Ez a kimenet a fenti szkript futtatásakor.
Tudjon meg többet JavaScriptExecutor
Mi az a görgetősáv?
A görgetősáv segítségével vízszintes vagy függőleges irányban mozoghat a képernyőn, ha az aktuális oldalgörgetés nem illeszkedik a képernyő látható területéhez. Az ablak fel-le mozgatására szolgál.
Selenium A Webdrivernek nincs szüksége görgetésre a műveletek végrehajtásához, mivel manipulálja a DOM-ot. Bizonyos weboldalakon azonban az elemek csak akkor válnak láthatóvá, ha a felhasználó rájuk görgetett. Ilyen esetekben görgetésre lehet szükség.
A görgetősáv kétféle: Vízszintes és a függőleges görgetősáv az alábbi képernyőképen látható módon.
Összegzésként
- A fenti oktatóanyagban különböző forgatókönyveken keresztül szemléltetjük a weboldal görgetését.
- Az első forgatókönyvben a görgetést oldalanként lefelé mutattuk.
- A második forgatókönyvben az oldal lefelé görgetését mutattuk az elem láthatóvá válásáig.
- A harmadik forgatókönyvben az oldal lefelé görgetését mutattuk meg az oldal alján.
- A negyedik forgatókönyvben a vízszintes görgetést illusztrálva a weboldalon.