首页 > 解决方案 > 如何使用 Java + Selenium WebDriver 移动到动态页面的底部

问题描述

我正在尝试获取完全动态的页面中的行数。我有以下代码可以这样做。但它在一定程度上滚动并且仅获取元素的部分计数。无法在页面底部找到任何元素,因为它是动态元素。我该如何解决这个问题?

List<WebElement> elements = driver.findElements(By.xpath(NoOfAssets));
Actions a = new Actions(driver);
a.moveToElement(elements.get(elements.size() - 1)).clickAndHold().moveByOffset(0, 1000000000).release().perform();
int noOfAssets = elements.size();
System.out.println(noOfAssets);

它只返回 40 行。但实际上还有更多行。我想在加载行时将光标拖到页面底部,然后获取大小。

标签: javascriptjavaseleniumselenium-webdriver

解决方案


您需要到scroll down页面末尾然后找到。elements但是您可以使用sendKeys方法向下滚动页面。尝试以下代码。让我知道它是如何进行的。


JavascriptExecutor js = (JavascriptExecutor)driver;

        while(true){

            Long height=(Long) js.executeScript("return document.body.scrollHeight");
            System.out.println(height);
            Thread.sleep(1000);
            driver.findElement(By.tagName("body")).sendKeys(Keys.END);        

            if (height==0)
            {
                break;
            }               

        } 

推荐阅读