Ricerca…


introduzione

Questo argomento fornirà diversi approcci su come eseguire lo scrolling con il selenium

Scorrimento con Python

1. Scorrimento verso l'elemento di destinazione (pulsante "SFOGLIA MODELLI" nella parte inferiore della pagina) con 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. Scorrimento verso l'elemento di destinazione (pulsante "SFOGLIA MODELLI" nella parte inferiore della pagina) con 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. Scorrimento verso l'elemento di destinazione (pulsante "SFOGLIA MODELLI" nella parte inferiore della pagina) con il metodo integrato

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

Nota che location_once_scrolled_into_view restituisce anche le coordinate x , y dell'elemento dopo lo scorrimento

4. Scorrere fino alla fine della pagina con i 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

Si noti che anche send_keys(Keys.DOWN) / send_keys(Keys.UP) e send_keys(Keys.PAGE_DOWN) / send_keys(Keys.PAGE_UP) potrebbero essere utilizzati per lo scorrimento

Scorrimento diverso con java in modi diversi

Qui di seguito la soluzione può essere utilizzata anche in altri linguaggi di programmazione supportati con alcune modifiche alla sintassi


  1. Per scorrere verso il basso pagina / sezione / divisione nella pagina Web mentre c'è la barra di scorrimento personalizzata (non scorrere del browser). Clicca qui per la demo e controlla che la barra di scorrimento abbia il suo elemento indipendente.

Nel codice di seguito indicato passare l'elemento della barra di scorrimento e richiedere i punti di scorrimento.

    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. Per fare scorrere verso l'alto pagina / sezione / divisione nella pagina web mentre c'è barra di scorrimento personalizzata (non scorrere del browser). Clicca qui per la demo e controlla che la barra di scorrimento abbia il suo elemento indipendente.

Nel codice di seguito indicato passare l'elemento della barra di scorrimento e richiedere i punti di scorrimento.

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. Per scorrere verso il basso quando più browser scorre (browser incorporato) e si desidera scorrere verso il basso con il tasto Pagina giù . Clicca qui per la demo

Nel codice sotto riportato, passa l'elemento della tua area di scorrimento come <div> e richiede il tasto page down.

 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. Per scorrere verso l'alto quando più browser scorre (browser incorporato) e si desidera scorrere verso l'alto con il tasto Pagina SU . Clicca qui per la demo

Nel codice indicato sotto, passa l'elemento della tua area di scorrimento come <div> e richiede la chiave della pagina su.

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. Per scorrere verso il basso quando più browser scorre (browser incorporato) e si desidera scorrere verso il basso con il solo tasto freccia giù . Clicca qui per la demo

Nel codice sotto riportato, passa l'elemento dell'area di scorrimento come <div> e richiede il tasto di riduzione.

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. Per scorrere verso l'alto quando più browser scorre (browser incorporato) e si desidera scorrere verso l'alto con il solo tasto freccia su . Clicca qui per la demo

Nel codice sotto riportato, passa l'elemento dell'area di scorrimento come <div> e richiede la chiave su.

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. Per scorrere verso l'alto / il basso quando il browser scorre (browser incorporato) e si desidera scorrere verso l'alto / verso il basso con il solo punto fisso . Clicca qui per la demo

Nel codice indicato di seguito passa il tuo punto di scorrimento. Positivo significa in basso e negativo significa scorrere verso l'alto.

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. Per scorrere verso l'alto / verso il basso quando il browser scorre (browser incorporato) e si desidera scorrere verso l'alto / il basso su Per rendere l'elemento nell'area visibile o lo scorrimento dinamico . Clicca qui per la demo

Nel codice indicato di seguito passa il tuo elemento.

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

Nota: verificare il caso e utilizzare i metodi. Se manca qualche caso, fammi sapere.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow