2

我正在使用 Java 的 selenium 进行自动化测试,浏览器是 Firefox。

这是我的示例代码:

WebElement elem = driver.findElement(By.xpath(".//*[@id='main']/div/div[3]/div[1]/div/div[3]/div/div/div/a"));
Actions action = new Actions(driver);
Actions action2 = action.moveToElement(elem);
action2.perform();

问题是“moveToElement”动作正在触发页面的自动滚动事件。我希望页面保持原样而不滚动。有人可能知道如何禁用此自动滚动?谢谢。

4

2 回答 2

3

你不能。WebDriver 在对元素进行操作时将元素滚动到视图中。

于 2013-02-08T22:28:27.090 回答
1

您不能禁用自动滚动。


一些可能的解决方法:

  1. 如果这对你的事业有帮助,你可以尝试在你的身上触发一个综合mouseover事件WebElement

  2. 之后moveToElement(),您可以尝试使用window.scrollTo()或例如Page Up键重新滚动到您需要的位置。显然,这会破坏mouseover元素,但也许这就是您所需要的。

  3. 您可以通过Robot类将真实的鼠标光标定位在元素上。这可能有点棘手,您可能需要使用浏览器进入全屏模式(或使用this),然后手动处理滚动偏移(如果有的话)。


一切都取决于您的意图,您真正需要对元素做什么以及为什么。

于 2013-02-08T22:40:05.523 回答