滚动窗口,直到使用selenium / javascript在页面中加载元素

时间:2016-11-17 12:38:49

标签: javascript selenium selenium-webdriver scroll selenium-chromedriver

我需要选择向下滚动页面时出现的图像。一组图像加载到页面底部并进一步向下滚动加载另一组图像。

我尝试使用scroll(),scrollBy()和Actions方法但没有响应。 但是单独使用scrollIntoView()方法滚动页面。因为我需要选择的图像只有在滚动完成加载后才出现,所以我不能在这里使用scrollIntoView()。请注意滚动窗口即时尝试是在iframe和div标签内。

((JavascriptExecutor) driver).executeScript("scroll(0,400)");

((JavascriptExecutor) driver).executeScript("window.scrollBy(0,250)", "");

Actions action = new Actions(driver);
action.sendKeys(Keys.PAGE_DOWN);

1 个答案:

答案 0 :(得分:1)

要滚动到底部,请将scrollTop属性设置为最大值。具有滚动条的容器通常是<body>

((JavascriptExecutor)driver).executeScript(
    "document.body.scrollTop = -1 >>> 1");

<html>

((JavascriptExecutor)driver).executeScript(
    "document.documentElement.scrollTop = -1 >>> 1");

或可滚动的<div style="overflow: scroll;">

WebElement div = driver.findElement(By.cssSelector(...));
((JavascriptExecutor)driver).executeScript(
    "arguments[0].scrollTop = -1 >>> 1", div);

请注意,您首先需要在目标框架上设置上下文。