我有一个网页,当您滚动到底部时,它会通过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(); }
希望对您有所帮助!