我使用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”动作是触发页面的自动滚动事件。 我希望页面在没有滚动的情况下保持原样。 有人可能知道如何禁用此自动滚动? 感谢。
答案 0 :(得分:3)
你做不到。 WebDriver在处理元素时会将元素滚动到视图中。
答案 1 :(得分:1)
您无法禁用自动滚动。
一些可能的解决方法:
如果这有助于您的事业,您可以尝试fire a syntetic mouseover
event WebElement
。
在moveToElement()
之后,您可以尝试使用window.scrollTo()
或例如 Page Up 键重新注册到您需要的位置。显然,这会破坏元素上的mouseover
,但也许这就是你所需要的。
您可以通过Robot
课程将真实鼠标光标放在元素上。这可能有点棘手,您可能需要使用浏览器进入全屏模式(或使用this),然后手动处理滚动偏移(如果有的话)。
一切都取决于你的意图,你真正需要做的元素和原因。