Java selenium。禁用页面的自动滚动

时间:2013-02-08 21:42:07

标签: java selenium-webdriver scroll

我使用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”动作是触发页面的自动滚动事件。 我希望页面在没有滚动的情况下保持原样。 有人可能知道如何禁用此自动滚动? 感谢。

2 个答案:

答案 0 :(得分:3)

你做不到。 WebDriver在处理元素时会将元素滚动到视图中。

答案 1 :(得分:1)

您无法禁用自动滚动。


一些可能的解决方法:

  1. 如果这有助于您的事业,您可以尝试fire a syntetic mouseover event WebElement

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

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


  4. 一切都取决于你的意图,你真正需要做的元素和原因。