Selenium - 完整的AJAX加载自动滚动到页面底部

3

我有一个网页,在你滚动到底部时,它会通过ajax加载更多的结果。你可以做几次迭代直到完成。有点像Facebook的做法。

我正在尝试编写一个selenium脚本,使其一直到页面末尾直到完成。

这个类似于以下代码,但是我不知道如何确定页面是否在底部 - 所以我可以将其放在某种循环中吗?

我的尝试

    By selBy = By.tagName("body");

    driver.findElement(selBy).sendKeys(Keys.PAGE_DOWN);
    System.out.println("Sleeping... wleepy");

    Thread.sleep(5000);
    driver.findElement(selBy).sendKeys(Keys.PAGE_DOWN);

    System.out.println("Sleeping... wleepy1");
    Thread.sleep(3000);

    //etc...

可能长这样?
hasScroll() 不是一个真正的方法。我将其放在那里以演示我试图实现的内容。

   while (driver.findElement(By.tagName("body")).hasScroll()) {
        driver.findElement(selBy).sendKeys(Keys.PAGE_DOWN);
        System.out.println("Sleeping... wleepy");
        Thread.sleep(2000);
   }
1个回答

4
尝试这种方法:
//Get total height
By selBy = By.tagName("body"); 
int initialHeight = driver.findElement(selBy).getSize().getHeight();
int currentHeight = 0;

while(initialHeight != currentHeight){
        initialHeight = driver.findElement(selBy).getSize().getHeight();

        //Scroll to bottom
        ((JavascriptExecutor) driver).executeScript("scroll(0," + initialHeight + ");");

        System.out.println("Sleeping... wleepy");
        Thread.sleep(2000);

        currentHeight = driver.findElement(selBy).getSize().getHeight();
}

Hope help!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接