java - Selenium - 完成ajax加载自动滚动到页面底部

标签 java selenium selenium-webdriver automated-tests

我有一个网页,当您滚动到底部时,它会通过 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);
   }

最佳答案

试试这个方法:

//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();
}

希望有所帮助!

关于java - Selenium - 完成ajax加载自动滚动到页面底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24549910/

相关文章:

regex - 使用正则表达式的 selenium xpath 表达式中的语法错误

java - 这里需要Cloneable吗?

java - s :iterator over Map with a dynamic key parameter

python - 如何使用 Selenium 库在 Robot Framework 中编写测试用例

python - 如何使用selenium单击网页中的图像

javascript - Internet Explorer 的 findIndex() 方法问题

java - 使用 BlobDownload 客户端的不同校验和值

java - 从 Java 运行 ant

java - 如何检查该页面是否自动滚动到适当的 block ?

java - 有没有办法隐式等待加载 Block UI 类?