76

Javaを使用してページをスクロールするために、Selenium 1(別名Selenium RC)で次のコードを記述しました。

selenium.getEval("scrollBy(0, 250)");

Selenium 2(WebDriver)の同等のコードは何ですか?

4

16 に答える 16

121

シナリオ/テストの手順:
1. ブラウザを開いてTestURL
に移動します 2. ピクセルを下にスクロールしてから上にスクロールします

下にスクロールする場合:

WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,250)");

または、次のように実行できます。

jse.executeScript("scroll(0, 250);");

上にスクロールする場合:

jse.executeScript("window.scrollBy(0,-250)");
OR,
jse.executeScript("scroll(0, -250);");

ページの一番下までスクロールします。

シナリオ/テストの手順:
1. ブラウザを開き、TestURL
に移動します 。 2. ページの一番下までスクロールします。

方法 1: JavaScriptExecutor を使用する

jse.executeScript("window.scrollTo(0, document.body.scrollHeight)");

方法 2: ctrl+end を押す

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL, Keys.END);

方法 3: Java Robot クラスを使用する

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_END);
robot.keyRelease(KeyEvent.VK_END);
robot.keyRelease(KeyEvent.VK_CONTROL);
于 2012-09-06T04:59:34.023 に答える
43

ページの一番下までスクロール:

JavascriptExecutor js = ((JavascriptExecutor) driver);
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
于 2015-06-20T17:33:28.163 に答える
11

これは (WebDriver に関して) ご質問に対する正確な回答ではないかもしれませんが、java.awtライブラリはselenium.Keys. したがって、前者を使用したページ ダウン アクションは次のようになります。

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_PAGE_DOWN);
robot.keyRelease(KeyEvent.VK_PAGE_DOWN);
于 2015-06-04T17:26:10.130 に答える
2

これを試して:

Actions dragger = new Actions(driver);
WebElement draggablePartOfScrollbar = driver.findElement(By.xpath("//*[@id='jobreslist_outercontainer']/div/div[2]/div"));

// drag downwards
int numberOfPixelsToDragTheScrollbarDown = 50;
for (int i = 10; i < 500; i += numberOfPixelsToDragTheScrollbarDown) {
    try {
        // this causes a gradual drag of the scroll bar, 10 units at a time
        dragger.moveToElement(draggablePartOfScrollbar).clickAndHold().moveByOffset(0, numberOfPixelsToDragTheScrollbarDown).release().perform();
        Thread.sleep(1000L);
    } catch(Exception e1) {}
}

// now drag opposite way (downwards)
numberOfPixelsToDragTheScrollbarDown = -50;
for (int i = 500; i > 10; i += numberOfPixelsToDragTheScrollbarDown) {
    // this causes a gradual drag of the scroll bar, -10 units at a time
    dragger.moveToElement(draggablePartOfScrollbar).clickAndHold().moveByOffset(0, numberOfPixelsToDragTheScrollbarDown).release().perform();
    Thread.sleep(1000L);
}
        
于 2013-06-27T02:23:08.973 に答える
0

以下を使用してすべての要素を選択するには、ページにスクロールを追加する必要があります。

Selenium.executeScript("window.scrollBy(0,450)", "");

リストが大きい場合は、実行中にスクロールを数回追加します。たとえば、スクロールはページ内の特定のポイントにのみ移動することに注意してください(0, 450)

于 2016-08-24T16:39:31.027 に答える
0
JavascriptExecutor jse = ((JavascriptExecutor) driver);
jse.executeScript("window.scrollTo(0, document.body.scrollHeight)");

このコードは私にとってはうまくいきます。私がテストしているページとして、下にスクロールすると読み込まれます。

于 2016-11-03T09:11:12.670 に答える