サーチ…


前書き

このトピックでは、 seleniumスクロールを実行する方法のいくつかの方法を提供します

Pythonを使ったスクロール

1. Actionsターゲット要素へのスクロール(ページの下部にある「BROWSE TEMPLATES」ボタン)

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. JavaScriptJavaScriptしたターゲット要素へのスクロール(ページの下部にある「BROWSE TEMPLATES」ボタン)

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は、スクロール後の要素のxy座標も返すことに注意してください

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. カスタムスクロールバー(ブラウザスクロールではありません)がある間に、Webページのページ/セクション/ディビジョンを下にスクロールします。 ここをクリックデモとチェックスクロールバーには独立した要素があります。

以下のコードでは、スクロールバーの要素を渡し、スクロールポイントが必要です。

    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. カスタムスクロールバー(ブラウザスクロールではありません)がある間に、Webページのスクロールアップページ/セクション/ディビジョンを行います。 ここをクリックデモとチェックスクロールバーには独立した要素があります。

以下のコードでは、スクロールバーの要素を渡し、スクロールポイントが必要です。

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. 複数のブラウザのスクロール (内蔵ブラウザ)を行い、 Page Downキーを使用してにスクロールしたいときにスクロールします。 デモ用にここをクリック

以下のコードでは、 <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. 複数のブラウザスクロール (内蔵ブラウザ)を使用していて、 Page 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. ブラウザのスクロール (In-Builtブラウザ)と上/下にスクロールする場合にスクロールアップ/ダウンするには可視領域またはダイナミックスクロールの要素を作成しますデモ用にここをクリック

以下のコードでは、あなたの要素を渡します。

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