【发布时间】:2013-10-10 16:45:41
【问题描述】:
我对 Selenium 及其功能比较陌生 到目前为止,我发现它只是用于 Web 应用程序的自动回归测试的工具。正是在我正在构建的这个回归测试套件中,我遇到了一个问题。在 Web 应用程序中,我有一个页面显示 Jquery 数据表,其中包含一些行。每行都绑定了一个上下文菜单。该弹出作为浮动在最顶部的 Z 顺序上的 DIV 出现,绝对定位全部由 Jquery 控制。
我在 selenium 中尝试做的是实际使用此菜单,以便我能够通过适当的回归测试对其进行变形。我在使用 Actions 类调用上下文菜单方面取得了一些成功。我不能做的是让鼠标移动到菜单项可以单击它们。我一直在尝试使用 MoveByOffset 方法,但我似乎没有运气让它点击菜单中的任何内容。我也没有运气确定鼠标当前在页面上的位置,因此无法证明是否真的发生了任何事情。
我们将不胜感激地收到任何帮助或建议。
提前感谢大家。
这是我当前用来尝试驱动此上下文菜单的代码。 MoveByOffset 中的值实际上是 10 和 -10 的每种组合。尝试点击第一个菜单项。
public void ClickAction_myPOTSIcontextmenu(IWebElement Row)
{
Actions builder = new Actions(this._driver);
IAction action = builder.MoveToElement(Row).ContextClick().MoveByOffset(-10,-10).Click().Build();
action.Perform();
}
【问题讨论】:
-
你能举一个你尝试过的动作链的例子吗? Actions 类功能强大,但学习起来可能很棘手。
-
我已经用我尝试使用的代码更新了我的主要问题。可能太简单了。
-
感谢您,非常有帮助。在使用
.MoveByOffest()时,通过实验,我发现移动的像素来自之前elements位置的指针位置。所以有时MoveByOffset()需要考虑到这一点。但是,既然您说DIV element已显示 - 您是否可以通过这种方式定位并与之交互的div中包含正常的elements?例如:builder.MoveToElement(Row).MoveToElement(_driver.FindElement(By.Id("id").Click().Build().Perform();
标签: selenium selenium-webdriver