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