使用WatiN将鼠标悬停在元素上

时间:2011-05-30 23:11:47

标签: automated-tests watin mbunit gallio

我开发了一套使用WatiN和MBUnit开发的自动化测试。我听说有可能让WatiN“悬停”在一个元素上,但我似乎无法使用我过去使用过的方法。还有其他方法可以做到这一点,我不知道吗?我尝试过使用FireEvent'onmouseover',并使用FireEvent并点击链接。

myDiv.HoverLink.FireEvent("onmouseover");
myDiv.HoverLink.Click();

有什么建议吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

尝试在要悬停的对象上使用MouseEnter方法。

以下是一个例子:

hoverLink.MouseEnter();

答案 1 :(得分:0)

    /// <summary>
    /// Mouse Over on given <see cref="Element"/>
    /// </summary>
    /// <param name="element">element</param>
    /// <returns>Nothing</returns>
    public static void MouseOver(this Element element)
    {
        var jref = element.GetJavascriptElementReference();
        var dom = element.DomContainer;

        var evt = new JSEventCreator(jref, null);
        var evtProp = new NameValueCollection();
        evtProp.Add("windowObject", "window");

        var scriptCode = evt.CreateMouseEventCommand("mouseover", evtProp);
        Logger.LogDebug(scriptCode);
        scriptCode = scriptCode.ToString() + jref + ".dispatchEvent(event);";

        string result = dom.Eval(scriptCode);
        Logger.LogAction(result);
        dom.WaitForComplete();
        Thread.Sleep(TimeSpan.FromSeconds(2));
    }

这就是我所做的,它在IE 11和FF上都有效。