瓦廷的 mouseMove

发布于 2024-12-23 07:40:15 字数 251 浏览 0 评论 0原文

我能够使用 Selenium 的 mouseMove 函数执行鼠标移动,从而触发菜单向下,但我的大部分浏览器自动化代码都是 Watin。瓦廷有合适的替代品吗?

我尝试过

div.FireEvent("onMouseMove");
div.MouseEnter();

但没有运气。我的目标是相同的 div 类。 Selenium 的 mouseMove 有效,Watin 的 onmouseMove 无效。

I'm able to perform a mouse move over that triggers a menu down with Selenium's mouseMove function, but have codded most of my browser automation is Watin. Is there a suitable replacement for this option in Watin?

I've tried

div.FireEvent("onMouseMove");
div.MouseEnter();

with no luck. I target the same div classes. mouseMove for Selenium works, onmouseMove for Watin doesn't.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画中仙 2024-12-30 07:40:15

在处理一些古怪的表单验证时,我必须直接调用 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使用 WatiN 进行菜单测试

Working with some cranky form validation, I had to call the javascript change() method directly to get form validation to fire as Watin's element click() wasn't doing it.

Calling change() looked like this.

var jqElement = string.Format("window.jQuery({0})", GetJavascriptElementReference());
DomContainer.Eval(string.Format("{0}.change()", jqElement));

Obviously you'd need to change the window.jQuery... portion to point at your form, and change the change() method to the appropriate mouseover method you need called.

The negative here is the fragility due to calling a specific javascript method in your test code.

Another example of calling javascript directly can be seen in my answer here: Autocomplete DropDown Menu Testing using WatiN

恋竹姑娘 2024-12-30 07:40:15

尝试一下鼠标移动...

div.FireEvent("mouseenter");
div.FireEvent("mousemove");

Give mouse move a try...

div.FireEvent("mouseenter");
div.FireEvent("mousemove");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文