如何在不使用JavascriptExecutor的情况下向下/向上滚动网页

时间:2016-05-03 10:01:27

标签: java selenium-webdriver

有没有其他方法可以在不使用JavaScriptExecutor的情况下在网页中向上/向下滚动?

3 个答案:

答案 0 :(得分:1)

您可以尝试将PageUp和PageDown键作为备用键:

语法:driver.findElement(By.xpath("xpath")).sendKeys(Keys.PAGE_DOWN)

答案 1 :(得分:0)

请根据您的要求尝试以下代码:

//使用Keys

滚动到元素
 Actions action = new Actions(dr);  
 action.sendKeys(Keys.PAGE_DOWN);  
 Thread.sleep(5000);  
 action.click(driver.findElement(By.partialLinkText("XYZ"))).perform(); 

//用于在页面上滚动

for (int second = 0;; second++) {

if(second >=60){
    break;
}
driver.executeScript("window.scrollBy(0,200)", "");
Thread.sleep(1000);

}

//滚动页面底部:

 Actions actions = new Actions(driver);
 actions.keyDown(Keys.CONTROL).sendKeys(Keys.END).perform();

答案 2 :(得分:0)

你可以使用以下方式向下滚动:

driver.findElement(By.xpath("xpath")).sendKeys(Keys.PAGE_DOWN)

但这只会向下滚动一次。

但是如果你想转移到那个元素,请使用以下代码:

WebElement scroll = driver.findElement(By.cssSelector("ur selector"));//u can use By.xpath or By.id here
Actions actions = new Actions(driver);
actions.moveToElement(scroll);
actions.perform();

这将通过滚动来获取元素。