페이지를 아래로 또는 위로 스크롤하는 방법 Selenium 웹드라이버
스크롤 Selenium
다음을 사용하여 스크롤하려면 Selenium, 당신이 사용할 수있는 Java실행을 돕는 ScriptExecutor 인터페이스 Java스크립트 방법을 통해 Selenium 웹드라이버
구문 :
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- 스크립트 – 이것은 Java실행해야 하는 스크립트.
- 인수 – 스크립트에 대한 인수입니다. 선택 사항입니다.
Selenium 페이지를 아래로 스크롤하는 스크립트
다음의 4가지 시나리오에서 Selenium Webdriver를 사용하여 웹 페이지를 아래로 스크롤하는 것을 살펴보겠습니다.
- 시나리오 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이온: 위 코드에서는 먼저 Chrome 브라우저에서 지정된 URL을 실행합니다. 다음으로, ExecuteScript를 통해 페이지를 1000픽셀씩 스크롤합니다. Javascript ScrollBy() 메서드는 웹 페이지를 특정 픽셀 수까지 스크롤합니다.
ScrollBy() 메서드의 구문은 다음과 같습니다.
executeScript("window.scrollBy(x-pixels,y-pixels)");
x-픽셀은 x축의 숫자이며 숫자가 양수이면 왼쪽으로 이동하고 숫자가 음수이면 오른쪽으로 이동합니다. y-픽셀은 y축의 숫자이며 숫자가 XNUMX이면 아래로 이동합니다. 양수이고 숫자가 음수이면 위로 이동합니다.
예:
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이온: 위 코드에서는 먼저 Chrome 브라우저에서 지정된 URL을 실행합니다. 그런 다음 언급된 요소가 현재 페이지에 표시될 때까지 페이지를 스크롤합니다. 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이온 : 위 코드에서는 먼저 Chrome 브라우저에서 지정된 URL을 실행합니다. 그런 다음 페이지 하단까지 스크롤하십시오. 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이온 : 위 코드에서는 먼저 Chrome 브라우저에서 지정된 URL을 실행합니다. 다음으로, 언급된 요소가 현재 페이지에 표시될 때까지 페이지를 가로로 스크롤합니다. Javascript scrollIntoView() 메서드는 언급된 요소가 전체 보기에 표시될 때까지 페이지를 스크롤합니다.
js.executeScript("arguments[0].scrollIntoView();",Element );
출력 분석: 위 스크립트를 실행할 때의 출력은 다음과 같습니다.
전단지에 포함된 링크에 대해 더 알아보기 Java스크립트 실행기
스크롤바란?
스크롤 막대는 현재 페이지 스크롤이 화면의 표시 영역에 맞지 않는 경우 가로 또는 세로 방향으로 화면 주위를 이동할 수 있는 도구입니다. 창을 위아래로 움직일 때 사용됩니다.
Selenium Webdriver는 DOM을 조작할 때 작업을 수행하기 위해 스크롤이 필요하지 않습니다. 그러나 특정 웹페이지에서는 사용자가 스크롤한 후에만 요소가 표시됩니다. 이러한 경우 스크롤이 필요할 수 있습니다.
스크롤 막대는 두 가지 유형입니다. 수평 and 수직선 아래 스크린샷과 같이 스크롤 막대를 사용합니다.
요약
- 위의 튜토리얼에서는 다양한 시나리오를 통해 웹 페이지 스크롤을 보여줍니다.
- 첫 번째 시나리오에서는 페이지 단위로 아래로 스크롤하는 것을 보여주었습니다.
- 두 번째 시나리오에서는 요소가 표시될 때까지 페이지 아래로 스크롤하는 기능을 보여주었습니다.
- 세 번째 시나리오에서는 페이지 하단에 페이지 스크롤을 표시했습니다.
- 네 번째 시나리오에서는 웹 페이지의 가로 스크롤을 보여줍니다.