Selenium java прокрутка страницы вниз

Scrolling web page with Selenium Webdriver using java

We can scroll the web page using javaScript Executor in the java code.We have taken the below example with three different scenarios of scrolling a webpage.

1. We may require to scroll to bottom of the page and then perform operations. For this scenario we have created a test ‘scrollingToBottomofAPage’/

2. Some times, we may require to scroll to particular element and peform operations on that particular element. For this we need to pass the element on which we need to perform operation. For this scenario we have created a test ‘scrollingToElementofAPage’/

3. We can also use the coordinates to scroll to particular position by passing the coordinates. For this scenario we have created a test ‘scrollingByCoordinatesofAPage’/

package com.scroll.page; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class PageScroll < WebDriver driver; String URL https://www.linkedin.com/"; ">https://www.linkedin.com/"; @BeforeClass public void setUp() < driver = new FirefoxDriver(); driver.get(URL); driver.manage().window().maximize(); >@Test(priority=1) public void scrollingToBottomofAPage() < driver.navigate().to(URL); ((JavascriptExecutor) driver) .executeScript("window.scrollTo(0, document.body.scrollHeight)"); >@Test(priority=2) public void scrollingToElementofAPage() < driver.navigate().to(URL+"directory/companies?trk=hb_ft_companies_dir"); WebElement element = driver.findElement(By.linkText("Import/Export")); ((JavascriptExecutor) driver).executeScript( "arguments[0].scrollIntoView();", element); >@Test(priority=3) public void scrollingByCoordinatesofAPage() < driver.navigate().to(URL+"job/?trk=hb_ft_jobs"); ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,500)"); >@AfterClass public void tearDown() < driver.quit(); >>

The more better way to do this is having a utils class and define reusable methods. We can call these methods from different classes/tests.

We need to pass the driver to the method.

 public static void scrollToBottom(WebDriver driver)

In the same way, we may need to scroll to particular element and perform operations. To do this we need the below example reusable method. We need to pass the driver and element.

 public static void scrollTo(WebDriver driver, WebElement element)

Источник

Читайте также:  Java переопределение метода equals java

How To Scroll a Page Using Selenium WebDriver?

Join

Selenium is one of the most widely used test automation frameworks for web automation testing. As far as the framework is concerned, Selenium WebDriver is the most vital component for carrying out automated browser testing. Before deep-diving into how to perform scroll operations (e.g. scroll down, scroll up, horizontal scroll, etc.) using Selenium, let us take a quick look at the hierarchy of classes and interfaces in Selenium WebDriver.

The Search context is the super interface in Selenium. The Remote WebDriver class implements the methods in WebDriver – search context interfaces, TakeScreenshot, and JavaScriptExecutor interfaces.

JavaScriptExecutor in Selenium is used to execute the code written in Javascript within the Selenium automation framework. This interface has two methods namely ExecuteScript and ExecuteAsyncScript which are used to execute the JavaScript code.

In this blog, we look at you how to perform scrolling actions on any webpage using the JavaScriptExecutor interface. Selenium scroll down, scroll to element, horizontal scroll, etc. are some of the common scroll operations that we would be demonstrating using Java.

Starting your journey with Selenium WebDriver? Check out this step-by-step guide to perform Automation testing using Selenium WebDriver.

TABLE OF CONTENT

  • How to scroll down to the bottom of the page in Selenium using Java
  • How to scroll by the visibility of WebElement on the page in Selenium using Java
  • How to scroll down in a page by specified pixels in Selenium using Java
  • How to scroll the page to the left in a horizontal direction using Selenium Java
  • How to scroll the page to the right in the horizontal direction using Selenium Java
  • How to scroll a webpage in horizontal and vertical directions in Selenium using Java
  • How to scroll the scroll bar on a page using Selenium Java
  • How to scroll a webpage in horizontal and vertical directions in Selenium using Java
  • How to scroll a webpage having infinite scrolling in Selenium using Java
  • How to Scroll to the top of the page in Selenium using Java
  • How to do scroll horizontally to a specific element on a page in Selenium using Java

To realize Selenium scroll down, Selenium scroll to element, and other relevant operations; we first need to import org.openqa.selenium.JavascriptExecutor package in our code. Shown below is the syntax of JavaScriptExecutor for Selenium:

Источник

selenium-webdriver
Скроллинг

Различные прокрутки с использованием java разными способами

Ниже дать решение можно также использовать в других поддерживаемых языках программирования с некоторыми изменениями синтаксиса

  1. Выполнение Прокрутка вниз по страницам / разделу / разделению на веб-странице, в то время как есть настраиваемая полоса прокрутки (не прокрутка браузера). Нажмите здесь. Для демонстрации и проверки полосы прокрутки имеет свой независимый элемент.

В приведенном ниже коде передайте элемент полосы прокрутки и укажите точки прокрутки.

 public static boolean scroll_Page(WebElement webelement, int scrollPoints) < try < System.out.println("---------------- Started - scroll_Page ----------------"); driver = ExecutionSetup.getDriver(); dragger = new Actions(driver); // drag downwards int numberOfPixelsToDragTheScrollbarDown = 10; for (int i = 10; i < scrollPoints; i = i + numberOfPixelsToDragTheScrollbarDown) < dragger.moveToElement(webelement).clickAndHold().moveByOffset(0, numberOfPixelsToDragTheScrollbarDown).release(webelement).build().perform(); >Thread.sleep(500); System.out.println("---------------- Ending - scroll_Page ----------------"); return true; > catch (Exception e) < System.out.println("---------------- scroll is unsucessfully done in scroll_Page ----------------"); e.printStackTrace(); return false; >> 
  1. Выполнение прокрутки вверх страницы / раздела / деления на веб-странице, пока есть пользовательская полоса прокрутки (не прокрутка браузера). Нажмите здесь. Для демонстрации и проверки полосы прокрутки имеет свой независимый элемент.

В приведенном ниже коде передайте элемент полосы прокрутки и укажите точки прокрутки.

public static boolean scroll_Page_Up(WebElement webelement, int scrollPoints) < try < System.out.println("---------------- Started - scroll_Page_Up ----------------"); driver = ExecutionSetup.getDriver(); dragger = new Actions(driver); // drag upwards int numberOfPixelsToDragTheScrollbarUp = -10; for (int i = scrollPoints; i >10; i = i + numberOfPixelsToDragTheScrollbarUp) < dragger.moveToElement(webelement).clickAndHold().moveByOffset(0, numberOfPixelsToDragTheScrollbarUp).release(webelement).build().perform(); >System.out.println("---------------- Ending - scroll_Page_Up ----------------"); return true; > catch (Exception e) < System.out.println("---------------- scroll is unsucessfully done in scroll_Page_Up----------------"); e.printStackTrace(); return false; >> 
  1. Чтобы выполнить прокрутку вниз, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокрутить вниз с помощью клавиши «Вниз» . Нажмите здесь для демонстрации

В приведенном ниже коде передайте свой элемент области прокрутки, например и нажмите кнопку «вниз».

 public static boolean pageDown_New(WebElement webeScrollArea, int iLoopCount) < try < System.out.println("---------------- Started - pageDown_New ----------------"); driver = ExecutionSetup.getDriver(); dragger = new Actions(driver); for (int i = 0; i System.out.println"---------------- Ending - pageDown_New ----------------"); return true; > catch (Exception e) < System.out.println("---------------- Not able to do page down ----------------"); return false; >> 
  1. Чтобы выполнить прокрутку вверх, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокрутить вверх с помощью клавиши UP UP . Нажмите здесь для демонстрации

В нижеприведенном коде передайте свой элемент области прокрутки, например и нажмите клавишу вверх.

public static boolean pageUp_New(WebElement webeScrollArea, int iLoopCount) < try < System.out.println("---------------- Started - pageUp_New ----------------"); driver = ExecutionSetup.getDriver(); dragger = new Actions(driver); for (int i = 0; i System.out.println("---------------- Ending - pageUp_New ----------------"); return true; > catch (Exception e) < System.out.println("---------------- Not able to do page up ----------------"); return false; >> 
  1. Чтобы выполнить прокрутку вниз, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокрутить вниз с помощью клавиши «Только стрелка вниз» . Нажмите здесь для демонстрации

В приведенном ниже коде передайте свой элемент области прокрутки, например и нажмите клавишу «вниз».

public static boolean scrollDown_Keys(WebElement webeScrollArea, int iLoopCount) < try < System.out.println("---------------- Started - scrollDown_Keys ----------------"); driver = ExecutionSetup.getDriver(); dragger = new Actions(driver); for (int i = 0; i System.out.println("---------------- Ending - scrollDown_Keys ----------------"); return true; > catch (Exception e) < System.out.println("---------------- Not able to do scroll down with keys----------------"); return false; >> 
  1. Чтобы выполнить прокрутку вверх, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокручивать вверх с помощью клавиши «Только стрелка вверх» . Нажмите здесь для демонстрации

В приведенном ниже коде передайте свой элемент области прокрутки, например и введите требуемый ключ.

public static boolean scrollUp_Keys(WebElement webeScrollArea, int iLoopCount) < try < System.out.println("---------------- Started - scrollUp_Keys ----------------"); driver = ExecutionSetup.getDriver(); dragger = new Actions(driver); for (int i = 0; i System.out.println("---------------- Ending - scrollUp_Keys ----------------"); return true; > catch (Exception e) < System.out.println("---------------- Not able to do scroll up with keys----------------"); return false; >> 
  1. Чтобы выполнить прокрутку вверх / вниз при прокрутке браузера (встроенный браузер), и вы хотите прокручивать вверх / вниз только с фиксированной точкой . Нажмите здесь для демонстрации

В приведенном ниже коде передайте свою точку прокрутки. Положительное означает, что вниз и отрицательные средства прокручиваются вверх.

public static boolean scroll_without_WebE(int scrollPoint) < JavascriptExecutor jse; try < System.out.println("---------------- Started - scroll_without_WebE ----------------"); driver = ExecutionSetup.getDriver(); jse = (JavascriptExecutor) driver; jse.executeScript("window.scrollBy(0," + scrollPoint + ")", ""); System.out.println("---------------- Ending - scroll_without_WebE ----------------"); return true; >catch (Exception e) < System.out.println("---------------- scroll is unsucessful in scroll_without_WebE ----------------"); e.printStackTrace(); return false; >> 
  1. Чтобы выполнить прокрутку вверх / вниз при прокрутке браузера (встроенный браузер), и вы хотите прокручивать вверх / вниз, чтобы сделать элемент в видимой области или динамическом прокрутке . Нажмите здесь для демонстрации

В приведенном ниже коде передайте свой элемент.

public static boolean scroll_to_WebE(WebElement webe) < try < System.out.println("---------------- Started - scroll_to_WebE ----------------"); driver = ExecutionSetup.getDriver(); ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", webe); System.out.println("---------------- Ending - scroll_to_WebE ----------------"); return true; >catch (Exception e) < System.out.println("---------------- scroll is unsucessful in scroll_to_WebE ----------------"); e.printStackTrace(); return false; >> 

Примечание. Пожалуйста, проверьте свой случай и используйте методы. Если какой-либо случай отсутствует, дайте мне знать.

Источник

Оцените статью