【问题标题】:Selenium Replicating mouse Movement & clickingSelenium 复制鼠标移动和单击
【发布时间】: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


【解决方案1】:

希望这会有所帮助,

 WebElement element = driver.findElement(By.cssSelector("selector_for_element"));
        Locatable hoverItem = (Locatable) element;
        Mouse mouse = ((HasInputDevices) driver).getMouse();
        mouse.click(hoverItem.getCoordinates());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 2020-06-11
    相关资源
    最近更新 更多