2011-05-30 135 views
3

我使用WatiN和MBUnit开发了一套自动化测试。我听说有可能让WatiN将鼠标悬停在某个元素上,但似乎无法使用我过去使用的方法工作。有没有另一种方法可以做到这一点,我不知道?我尝试过使用FireEvent'onmouseover',并使用FireEvent加上单击链接。将鼠标悬停在使用WatiN的元素上

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

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

+0

你好, 你有没有找到任何解决方案呢? – atwellpub 2011-12-22 22:15:14

回答

0

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

下面是一个例子:

hoverLink.MouseEnter(); 
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。

相关问题