Jak posouvat stránku dolů nebo nahoru Selenium Webdriver
Přejděte dovnitř Selenium
Chcete-li rolovat pomocí Selenium, Můžete použít JavaRozhraní ScriptExecutor, které pomáhá spouštět JavaSkriptovací metody prostřednictvím Selenium Webdriver
Syntaxe:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- Skript – Toto je JavaSkript, který je třeba spustit.
- Argumenty – Jsou to argumenty skriptu. Je to volitelné.
Selenium Skript pro posunutí stránky dolů
Pojďme se podívat na posouvání webové stránky dolů pomocí selenového webového ovladače s následujícími 4 scénáři:
- Scénář 1: Procházení webové stránky po pixelech dolů.
- Scénář 2: Posouvání webové stránky dolů podle viditelnosti prvku.
- Scénář 3: Chcete-li posouvat webovou stránku dolů ve spodní části stránky.
- Scénář 4: Horizontální posouvání na webové stránce.
Scénář 1: Procházení webové stránky po pixelech dolů.
Selenium Scénář
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)"); } }
Scénář Description: Ve výše uvedeném kódu nejprve spustíme danou URL v prohlížeči Chrome. Dále posuňte stránku o 1000 pixelů pomocí skriptu executeScript. Javascript metoda ScrollBy() posouvá webovou stránku na konkrétní počet pixelů.
Syntaxe metod ScrollBy() je:
executeScript("window.scrollBy(x-pixels,y-pixels)");
x-pixels je číslo na ose x, posune se doleva, pokud je číslo kladné, a posune se doprava, pokud je číslo záporné .y-pixely je číslo na ose y, posune se dolů, pokud je číslo kladné a pokud je číslo záporné, posune se nahoru.
Příklad:
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels
Výstupní analýza: Zde je výstup, když spustíte výše uvedený skript.
Scénář 2: Posouvání webové stránky dolů podle viditelnosti prvku.
Selenium Scénář
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); } }
Scénář Description: Ve výše uvedeném kódu nejprve spustíme danou url v prohlížeči Chrome. Dále posouvejte stránku, dokud nebude zmíněný prvek viditelný na aktuální stránce. Javascript metoda scrollIntoView() posouvá stránku, dokud není zmíněný prvek v plném zobrazení:
js.executeScript("arguments[0].scrollIntoView();",Element );
„arguments[0]“ znamená první index stránky začínající na 0.
Kde „Prvek“ je lokátor na webové stránce.
Výstupní analýza: Zde je výstup, když spustíte výše uvedený skript.
Scénář 3: Chcete-li posouvat webovou stránku dolů ve spodní části stránky.
Selenium Scénář
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)"); } }
Scénář Descriptiont: Ve výše uvedeném kódu nejprve spustíme danou url v prohlížeči Chrome. Dále přejděte na konec stránky. Javascript metoda scrollTo() posuňte se až na konec stránky.
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
„document.body.scrollHeight“ vrací úplnou výšku těla, tj. webové stránky.
Výstupní analýza: Zde je výstup, když spustíte výše uvedený skript.
Scénář 4: Horizontální posouvání na webové stránce
Selenium Scénář
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); } }
Scénář Descriptiont: Ve výše uvedeném kódu nejprve spustíme danou url v prohlížeči Chrome. Dále posouvejte stránku vodorovně, dokud nebude zmíněný prvek viditelný na aktuální stránce. Javascript metoda scrollIntoView() posouvá stránku, dokud není zmíněný prvek v plném zobrazení:
js.executeScript("arguments[0].scrollIntoView();",Element );
Výstupní analýza: Zde je výstup, když spustíte výše uvedený skript.
Další informace o JavaScriptExecutor
Co je posuvník?
Posuvník umožňuje pohybovat se po obrazovce v horizontálním nebo vertikálním směru, pokud se rolování aktuální stránky nevejde do viditelné oblasti obrazovky. Slouží k pohybu okna nahoru a dolů.
Selenium Webdriver nevyžaduje rolování k provádění akcí při manipulaci s DOM. Na některých webových stránkách se však prvky stanou viditelnými, až když na ně uživatel přejde. V takových případech může být nutné rolování.
Posuvník je dvojího typu: Horizontální si vertikální posuvník, jak je znázorněno na snímku obrazovky níže.
Shrnutí
- Ve výše uvedeném tutoriálu ilustrujeme posouvání webové stránky prostřednictvím různých scénářů.
- V prvním scénáři jsme ukázali posouvání dolů po stránce po pixelu.
- Ve druhém scénáři jsme ukázali posouvání stránky dolů, dokud není viditelný prvek.
- Ve třetím scénáři jsme ukázali posun stránky dolů ve spodní části stránky.
- Ve čtvrtém scénáři je znázorněno vodorovné posouvání na webové stránce.