问题描述
|
我致力于使用WatiN和MBUnit开发的一套自动化测试。我听说可以将WatiN悬停在某个元素上,但是我似乎无法使用我过去使用的方法来使其工作。还有另一种我不知道的方法吗?我尝试仅使用FireEvent \'onmouseover \',并使用FireEvent再单击链接。
myDiv.HoverLink.FireEvent(\"onmouseover\");
myDiv.HoverLink.Click();
有什么建议么?提前致谢!
解决方法
尝试对要悬停的对象使用“ 1”方法。
这是一个例子:
hoverLink.MouseEnter();
, /// <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上均可使用。