【问题标题】:How to move to bottom of the dynamic page using Java + Selenium WebDriver如何使用 Java + Selenium WebDriver 移动到动态页面的底部
【发布时间】:2019-10-19 01:38:15
【问题描述】:

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

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 行。但实际上还有更多行。我想在加载行时将光标拖到页面底部,然后获取大小。

【问题讨论】:

  • 如果它是公共网址,您可以分享网址吗?
  • 嗯,不能分享。这是一个私人网址。
  • 嗨!进展如何?我的回答对你有帮助吗?谢谢。

标签: javascript java selenium selenium-webdriver


【解决方案1】:

你需要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;
            }               

        } 

【讨论】:

  • System.out.println(height);总是返回 17
  • 所以你的意思是说它永远不会出现在 while 循环中?
猜你喜欢
  • 2017-08-16
  • 1970-01-01
  • 2015-01-27
  • 1970-01-01
  • 2017-12-07
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 2010-09-23
相关资源
最近更新 更多