Selenium Webdriver-页面末尾(使用垂直滚动)

时间:2018-08-16 13:37:19

标签: javascript java selenium selenium-webdriver

如何检查我是否到达页面末尾(使用垂直滚动)?

在Webdriver中-按向下翻页键,直到页面结尾。使用for循环,我已经做到了:

for(int di=0; di<40; di++) { 
   driver.findElement(By.tagName("body")).sendKeys(Keys.PAGE_DOWN);
   Thread.sleep(1500);
}

我的for循环总是执行40倍,即使它的大小较小。因此,我需要帮助才能检查它是否到达页面末尾,因为如果到达页面末尾,我将中断并退出循环。

3 个答案:

答案 0 :(得分:0)

我认为首先您必须选择一个存在于页面末尾的元素。 假设有一个页脚标签,其ID为company-email

boolean flag = true;
while(flag){
if(driver.findElements(By.id("company-email").size()>0){

    flag = false;
}
else{

   driver.findElement(By.tagName("body")).sendKeys(Keys.PAGE_DOWN);
   Thread.sleep(1500);
   }
}

答案 1 :(得分:0)

您可以使用它滚动到页面的结尾:

public static void scrollToEndOfPage(WebDriver driver) {
        ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");
    }

执行后,您可以执行进一步的操作。

如果要滚动到特定的WebElement,可以使用以下方法:

 public static void scrollToElement(WebDriver driver, WebElement element) {
            ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);
        }

希望对您有帮助。

答案 2 :(得分:0)

感谢支持,终于有了一个主意,并实现了我的期望

首先测量滚动高度

Myarray = new[12]

并循环播放

 JavascriptExecutor executor = (JavascriptExecutor) driver;
            long value = (Long) executor.executeScript("return document.body.scrollHeight");