java - 滚动 Selenium 的奇怪行为

标签 java javascript selenium scroll ui-automation

我正在研究 ui 自动化,最近发现了一个有趣的行为。 有时我需要滚动到某个特定元素,并且我一直在使用JS函数滚动到元素和actions.moveToElement(WebElement)

这似乎适用于任何复选框、文本框、按钮类型的元素,但是当我需要移动到具有多列的表格的表格单元格()时 - 看到该表格正在向左移动,这种情况几乎每次都会发生。假设有一个 5x5 的表格,当我通过这两个函数中的任何一个执行scroll2element 时,我只在第 5 列上循环 - 整个表格变得一团糟。之前的所有列都会消失,并且我的第五列会一直向左移动。

我找到了解决方法 - 我不是滚动到特定的表格单元格,而是滚动到位于该表格顶部的按钮,但只是出于好奇,如果有人遇到这样的问题,他们做了什么?谢谢

最佳答案

我认为你的问题可能出在选择器上。

尝试在 XPath 上使用 CSS 选择器,根据我的生活经验,XPath 的效果不如 CSS。

而且我一直使用 JS,从来没有遇到过任何问题。

尝试一下

   WebElement x = driver.findElement(by);
        ((JavascriptExecutor) driver).executeScript(
                "arguments[0].scrollIntoView();", x);

关于java - 滚动 Selenium 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22864729/

相关文章:

java - 无法向 Spring Boot Hibernate JPA 中的现有表添加其他列

javascript - 如何使用 Ramda 在另一个数组中挑选键后追加到数组

java - 可编辑的TableTreeView,如何取消编辑

java - 拆分字符串时 ArrayIndexOutOfBounds

javascript - 单击按钮时使用 jQuery 播放音频文件

java - Firefox 不是使用 Geckodriver 和 Selenium 启动的 - 它可以与 Chrome 一起使用

python - 如何在 Python 中使用 Selenium 在 Chrome 上向下滚动 Youtube channel

java - 如何使用 Selenium Java 自动化 map ?或使用页面坐标。请告诉我是否还有其他方法可以自动化 map

java - 有没有更有效的方法来编码?

javascript - 在模块函数上使用 bind 后未定义 this