Zoeken…


Invoering

Dit onderwerp biedt verschillende manieren om scrollen met selenium te voeren

Scrollen met Python

1. Scrollen naar doelelement (knop "BLADEREN TEMPLATES" onderaan de pagina) met 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. Scrollen naar doelelement (knop "BLADEREN TEMPLATES" onderaan de pagina) met 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. Scrollen naar doelelement (knop "BLADEREN TEMPLATES" onderaan de pagina) met ingebouwde methode

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

Merk op dat location_once_scrolled_into_view ook x , y coördinaten van het element retourneert na het scrollen

4. Met Keys naar de onderkant van de pagina scrollen

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

Merk op dat send_keys(Keys.DOWN) / send_keys(Keys.UP) en send_keys(Keys.PAGE_DOWN) / send_keys(Keys.PAGE_UP) ook kunnen worden gebruikt voor scrollen

Verschillende scrollen met Java op verschillende manieren

Hieronder geven oplossing kan ook worden gebruikt in een andere ondersteunde programmeertalen met enkele syntaxiswijzigingen


  1. Om dit te doen Scrol omlaag / pagina / afdeling in webpagina terwijl er een aangepaste schuifbalk is (geen browserschuiven). Klik hier voor demo en controleer of de schuifbalk een onafhankelijk element heeft.

In onderstaande code geeft u uw schuifbalkelement door en hebt u schuifpunten nodig.

    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. Om Scroll Up pagina / sectie / divisie in webpagina te doen terwijl er een aangepaste schuifbalk is (geen browser scroll). Klik hier voor demo en controleer of de schuifbalk een onafhankelijk element heeft.

Geef in de onderstaande code uw schuifbalkelement door en vereist schuifpunten.

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. Doen omlaag scrollen wanneer meerdere browsers scrollen (Ingebouwde browser) en u wilt omlaag scrollen met de toets Page Down . Klik hier voor demo

In de onderstaande gegeven code geeft u uw scrollgebied-element zoals <div> en vereist u de toets Pagina omlaag.

 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. Doen OMHOOG scrollen wanneer meerdere browsers scrollen (Ingebouwde browser) en u omhoog wilt scrollen met de Page UP-toets . Klik hier voor demo

Geef in onderstaande code uw scrollgebied-element zoals <div> en vereist een pagina omhoog-toets.

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. Om dit te doen, scrol je omlaag wanneer meerdere browsers schuiven (ingebouwde browser) en je wilt omlaag scrollen met alleen de pijl-omlaag-toets . Klik hier voor demo

Geef in onderstaande code uw scrollgebied-element zoals <div> en gebruik de down-toets.

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. Om omhoog te scrollen wanneer meerdere browsers scrollen (Ingebouwde browser) en u omhoog wilt scrollen met alleen de pijltoets Omhoog . Klik hier voor demo

Geef in onderstaande code uw scrollgebied-element zoals <div> en gebruik de omhoog-toets.

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. Om dit te doen scrolt u omhoog / omlaag wanneer de browser scrolt (Ingebouwde browser) en wilt u omhoog / omlaag scrollen met Alleen vast punt . Klik hier voor demo

Geef in de onderstaande code uw schuifpunt door. Positief betekent omlaag en negatief betekent omhoog scrollen.

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. Om te doen scroll omhoog / omlaag wanneer browser scroll (ingebouwde browser) en u wilt omhoog / omlaag scrollen naar Voor element in zichtbaar gebied of dynamische scroll maken . Klik hier voor demo

Geef in onderstaande code uw element door.

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;
    }
}

Opmerking: controleer uw case en gebruik methoden. Laat het me weten als er iets ontbreekt.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow