Sök…


Introduktion

Detta ämne kommer att tillhandahålla flera metoder för hur man utför rullning med selenium

Bläddra med Python

1. Bläddra till målelementet ("BROWSE TEMPLATES" -knappen längst ner på sidan) med 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. Bläddra till målelementet ("BROWSE TEMPLATES" -knappen längst ner på sidan) med 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. Bläddra till målelementet ("BROWSE TEMPLATES" -knappen längst ner på sidan) med inbyggd metod

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

Observera att location_once_scrolled_into_view också returnerar x , y koordinater för elementet efter rullning

4. Bläddra till botten av sidan med 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

Observera att send_keys(Keys.DOWN) / send_keys(Keys.UP) och send_keys(Keys.PAGE_DOWN) / send_keys(Keys.PAGE_UP) också kan användas för rullning

Olika rullning med java på olika sätt

Nedan kan lösningen också användas på ett annat stöds programmeringsspråk med några syntaxförändringar


  1. Att göra Rulla ner sidan / sektionen / uppdelningen på webbsidan medan det finns anpassad rullningslista (inte webbläsarscroll). Klicka här för demo och kontrollera att rullfältet har sitt oberoende element.

I nedan angiven kod passerar du rullningslisten och kräver rullningspoäng.

    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. Att göra Rulla upp sida / sektion / uppdelning på webbsidan medan det finns anpassad bläddringsfält (inte webbläsarscroll). Klicka här för demo och kontrollera att rullfältet har sitt oberoende element.

I nedan angiven kod passerar du rullningslisten och kräver rullningspoäng.

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. För att bläddra nedåt när flera webbläsare bläddrar (Inbyggd webbläsare) och du vill bläddra nedåt med sidan nedåt-tangenten . Klicka här för demo

I den nedan angivna koden ska du skicka ditt rulleområdeselement som <div> och kräva sid ned-knapp.

 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. För att bläddra uppåt när flera webbläsare bläddrar (Inbyggd webbläsare) och du vill rulla upp med Page UP-tangenten . Klicka här för demo

I den nedan angivna koden ska du skicka ditt skivområdeselement som <div> och kräva siduppknappen.

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. För att bläddra nedåt när flera webbläsare bläddrar (Inbyggd webbläsare) och du vill bläddra nedåt med Endast nedåtpil . Klicka här för demo

I den nedan angivna koden, skicka ditt rullningselement som <div> och kräva nedknappen.

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. För att bläddra uppåt när flera webbläsare bläddrar (Inbyggd webbläsare) och du vill bläddra upp med Endast pil upp . Klicka här för demo

I den nedan angivna koden, skicka ditt rullningselement som <div> och kräva upp-tangenten.

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. För att bläddra uppåt / nedåt när webbläsaren bläddrar (Inbyggd webbläsare) och du vill rulla upp / ner med Endast fast punkt . Klicka här för demo

I nedan angiven kod passera din rullningspunkt. Positiva medel nedåt och negativa innebär bläddra uppåt.

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. För att bläddra uppåt / nedåt när webbläsaren bläddrar (Inbyggd webbläsare) och du vill bläddra uppåt / nedåt för att skapa element i synligt område eller dynamisk rullning . Klicka här för demo

I nedan angiven kod passera ditt element.

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

Obs: Kontrollera ditt ärende och använd metoder. Låt mig veta om något fall saknas.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow