java - 有没有办法使用 findElements 并将结果限制为前 x 项

标签 java selenium

我有一个表,其包含的列数可能相差很大(20 列到 10,000 列)。我有一种获取表数据的方法,以便可以比较数据值,但我通常只需要前几列中出现的值。要从我正在使用的行获取列数据:

List<WebElement> columns = rows.get(rnum).findElements(By.tagName("td"));

这将获取表中行号 rnum 的列(td 元素)。

我的问题是:有没有办法限制 findElements 仅返回前 xx 个结果?也许只返回前 100 列?该方法在有 20 列时效果很好,但在有 10000 列时则需要很长时间。或者,是否有更好的方法来迭代行数据的 TD 元素,以便当我找到所需的列时可以中断循环?

最佳答案

您可以首先使用索引到达第 20 个元素,然后可以使用 xpath 中的 preceding 来获取该元素之前的所有元素。在这种情况下,它会为您提供前 19 个元素。

你可以这样做:

List<WebElement> columns = rows.get(rnum).findElements(By.xpath("//td[20]//preceding::td"));

您可以使用它来获取任意数量的元素,您只需在 xpath 中将该值作为索引即可。

关于java - 有没有办法使用 findElements 并将结果限制为前 x 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59668832/

相关文章:

python - Scrapy InIt self.initialized() -- 没有初始化

java - 传递多维数组

java - 如何自定义<h :messages/> style in JSF 2?

c# - 如何将文本插入文本框 selenium c#

java - 我如何才能在 Java 中成功实现多线程 Selenium Server?

python - 运行屏幕截图后图像未存储

java - 如何自定义安装日志文件的日志输出?

java - 强制使 JavaFX 属性失效

java - 如何在匿名类中引用更高的类

python - 我无法专注于上传按钮来上传简历