java - 在 selenium 中无限滚动

标签 java selenium selenium-webdriver

我想从无休止滚动的网页中获取一些数据(主要是图片)。要获取数据,我需要单击一个按钮。页面在某些情况下会有所不同,有时会在 5 个元素后结束,有时会在 250 个元素后结束。目前我尝试了以下方法:

lastElement = driver.findElement(By.id("picture_id"));
WebElement submit_button = driver.findElement(By.xpath("//input[@value='Submit']"));
submit_button.click();

但是,页面不会刷新。

在 selenium 中处理无限滚动的正确方法是什么?如何处理页面上的大量元素,尤其是图片等重量级内容,通常加载速度不是很快?

感谢您的回答!

最佳答案

这基本上是我会做的方式,通过创建我自己的方法,即 scrollDown 方法:

import org.openqa.selenium.JavascriptExecutor;
WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
...
public void scrollDownPage( int pix ) {
    if ( pix <= 0 || pix > 1000 ) pix = 250;
    jse.executeScript("scroll(0, pix)");
}

关于java - 在 selenium 中无限滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26163026/

相关文章:

java - 尝试用Java编写一个基于皮肤处理图像的程序

java - 在 Java 中实现 "Selenium driver pool"的正确方法是什么?

java - java.lang.IllegalAccessError:尝试访问方法com.google.common.util.concurrent.SimpleTimeLimiter。使用Selenium-Java 3.5.1或更高版本时

java - 在处理 DropDowns 时,Selenium Select 无法正常工作

java - 未使用的导入和对象是否会对性能产生影响?

java - 如何在java中创建跨平台的安装程序

java - 当表具有外键时 Telosys 代码生成失败

javascript - 如何使用 selenium web 驱动程序在代码镜像中输入值?

c# - 无法使用 selenium webdriver 在 Windows 10 中启动 "Microsoft Edge"浏览器

java - 不存在类型变量 V 的实例,因此 ExpectedCondition<Boolean> 符合 Function<? super WebDriver,V>