如何检查我是否到达页面末尾(使用垂直滚动)?
在Webdriver中-按向下翻页键,直到页面结尾。使用for循环,我已经做到了:
for(int di=0; di<40; di++) {
driver.findElement(By.tagName("body")).sendKeys(Keys.PAGE_DOWN);
Thread.sleep(1500);
}
我的for循环总是执行40倍,即使它的大小较小。因此,我需要帮助才能检查它是否到达页面末尾,因为如果到达页面末尾,我将中断并退出循环。
答案 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");