gpt4 book ai didi

java - 如何向下滚动页面直到出现所有 View ?

转载 作者:行者123 更新时间:2023-12-02 02:47:34 24 4
gpt4 key购买 nike

在我的页面中有大量数据。第一次打开页面时,我只能看到一些数据。当我向下滚动页面时,其他数据开始出现。如此反复进行。问题是我想查看页面中的所有数据并获取它们的名称,但是当我使用 List <WebElement> listItems=driver.findElement(AAA).findElements(BBB); 时这段代码,我只能从第一页获取数据。我怎样才能看到其他人? (我不想在底部使用 id 或类。滚动直到看到它)

最佳答案

嗯,你当然可以滚动到底部。最简单的方法是使用 JavaScript 查看滚动高度并滚动到它:

JavascriptExecutor jse = (JavascriptExecutor) driver;
Long scrollHeight = (Long) jse.executeScript("return document.scrollHeight;");
jse.ExecuteScript("document.scrollTop="+scrollHeight);

但是,这仅在页面已经具有正确高度的滚动条时才有效。如果它没有立即完全渲染,则滚动高度可能不正确。有一种方法可以解决这个问题,但我从未尝试过使用页面,仅使用表格。

您按下 PgDn 按钮并检查滚动顶部。您需要在每个 PgDn 之后等待一秒钟,因为渲染滚动可能需要一些时间,并且您需要滚动顶部已经正确。一旦前一个和当前的scrollTop 相同,就完成了。

我没有亲自尝试过我在这里使用的按 PgDn 的方法。我只是将其发送到此处的 body 元素。另一种方法是使用操作。

JavascriptExecutor jse = (JavascriptExecutor) driver;
WebElement body = driver.findElement(By.tagName("body"));
String prevTop ="-1";
boolean continueScrolling = false;
do {
body.sendKeys(Keys.PAGE_DOWN);
Thread.sleep(1000); // you might need to add handling for InterruptedException
String currentTop = String.valueOf(jse.executeScript("return document.scrollTop;"));
continueScrolling = !currentTop.equals(prevTop);
prevTop = currentTop;
} while (continueScrolling);

关于java - 如何向下滚动页面直到出现所有 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44360658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com