Javaを使用してページをスクロールするために、Selenium 1(別名Selenium RC)で次のコードを記述しました。
selenium.getEval("scrollBy(0, 250)");
Selenium 2(WebDriver)の同等のコードは何ですか?
Javaを使用してページをスクロールするために、Selenium 1(別名Selenium RC)で次のコードを記述しました。
selenium.getEval("scrollBy(0, 250)");
Selenium 2(WebDriver)の同等のコードは何ですか?
シナリオ/テストの手順:
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);
ページの一番下までスクロール:
JavascriptExecutor js = ((JavascriptExecutor) driver);
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
これは (WebDriver に関して) ご質問に対する正確な回答ではないかもしれませんが、java.awt
ライブラリはselenium.Keys
. したがって、前者を使用したページ ダウン アクションは次のようになります。
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_PAGE_DOWN);
robot.keyRelease(KeyEvent.VK_PAGE_DOWN);
これを試して:
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);
}
以下を使用してすべての要素を選択するには、ページにスクロールを追加する必要があります。
Selenium.executeScript("window.scrollBy(0,450)", "");
リストが大きい場合は、実行中にスクロールを数回追加します。たとえば、スクロールはページ内の特定のポイントにのみ移動することに注意してください(0, 450)
。
JavascriptExecutor jse = ((JavascriptExecutor) driver);
jse.executeScript("window.scrollTo(0, document.body.scrollHeight)");
このコードは私にとってはうまくいきます。私がテストしているページとして、下にスクロールすると読み込まれます。