Поиск…


Вступление

В этой теме будут предложены несколько способов выполнения прокрутки с selenium

Прокрутка с использованием Python

1. Прокрутка к целевому элементу (кнопка «BROWSE TEMPLATES» внизу страницы) с помощью Actions

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get('http://www.w3schools.com/')
target = driver.find_element_by_link_text('BROWSE TEMPLATES')
actions = ActionChains(driver)
actions.move_to_element(target)
actions.perform()

2. Прокрутка к целевому элементу (кнопка «BROWSE TEMPLATES» внизу страницы) с помощью JavaScript

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://www.w3schools.com/')
target = driver.find_element_by_link_text('BROWSE TEMPLATES')
driver.execute_script('arguments[0].scrollIntoView(true);', target)

3. Прокрутка к целевому элементу (кнопка «BROWSE TEMPLATES» внизу страницы) со встроенным методом

from selenium import webdriver

    driver = webdriver.Chrome()
    driver.get('http://www.w3schools.com/')
    target = driver.find_element_by_link_text('BROWSE TEMPLATES')
    target.location_once_scrolled_into_view

Обратите внимание, что location_once_scrolled_into_view также возвращает x , y координаты элемента после прокрутки

4. Прокрутка в нижней части страницы с помощью Keys

from selenium import webdriver
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Chrome()
driver.get('http://www.w3schools.com/')
driver.find_element_by_tag_name('body').send_keys(Keys.END) # Use send_keys(Keys.HOME) to scroll up to the top of page

Обратите внимание, что send_keys(Keys.DOWN) / send_keys(Keys.UP) и send_keys(Keys.PAGE_DOWN) / send_keys(Keys.PAGE_UP) также могут использоваться для прокрутки

Различные прокрутки с использованием 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. Чтобы выполнить прокрутку вниз, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокрутить вниз с помощью клавиши «Вниз» . Нажмите здесь для демонстрации

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

 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 <= iLoopCount; i++)
        {
            dragger.moveToElement(webeScrollArea).click().sendKeys(Keys.PAGE_DOWN).build().perform();
        }
        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 . Нажмите здесь для демонстрации

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

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 <= iLoopCount; i++)
        {
            dragger.moveToElement(webeScrollArea).click().sendKeys(Keys.PAGE_UP).build().perform();
        }
        System.out.println("---------------- Ending - pageUp_New ----------------");
        return true;
    }
    catch (Exception e)
    {
        System.out.println("---------------- Not able to do page up ----------------");
        return false;
    }
}

  1. Чтобы выполнить прокрутку вниз, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокрутить вниз с помощью клавиши «Только стрелка вниз» . Нажмите здесь для демонстрации

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

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 <= iLoopCount; i++)
        {
            dragger.moveToElement(webeScrollArea).click().sendKeys(Keys.DOWN).build().perform();
        }
        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. Чтобы выполнить прокрутку вверх, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокручивать вверх с помощью клавиши «Только стрелка вверх» . Нажмите здесь для демонстрации

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

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 <= iLoopCount; i++)
        {
            dragger.moveToElement(webeScrollArea).click().sendKeys(Keys.UP).build().perform();
        }
        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;
    }
}

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



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow