作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表,其包含的列数可能相差很大(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/
我是一名优秀的程序员,十分优秀!