我能够通过Selenium的mouseMove功能执行鼠标移动触发菜单,但我的大多数浏览器自动化都是Watin。 Watin有这个选项的合适替代品吗?
我试过
div.FireEvent("onMouseMove");
div.MouseEnter();
没有运气。我的目标是相同的div类。用于Selenium的mouseMove,用于Watin的onmouseMove没有。
答案 0 :(得分:0)
使用一些胡思乱想的表单验证,我不得不直接调用javascript change()方法来激活表单验证,因为Watin的元素click()没有这样做。
调用change()看起来像这样。
var jqElement = string.Format("window.jQuery({0})", GetJavascriptElementReference());
DomContainer.Eval(string.Format("{0}.change()", jqElement));
显然,您需要将window.jQuery ...部分更改为指向您的表单,并将change()方法更改为您需要调用的相应鼠标悬停方法。
这里的负面影响是由于在测试代码中调用特定的javascript方法而导致的脆弱性。
直接调用javascript的另一个例子可以在我的答案中看到:Autocomplete DropDown Menu Testing using WatiN
答案 1 :(得分:0)
尝试鼠标移动......
div.FireEvent("mouseenter");
div.FireEvent("mousemove");