【发布时间】:2016-07-25 07:09:07
【问题描述】:
我正在测试DotNetBrowser,但找不到模拟鼠标移动和鼠标点击的方法。是否可以不使用 JavaScript 而只使用组件的方法?
它必须适用于页面中的 Flash 元素。因此通过 JavaScript 模拟点击和移动将无济于事。
或者也许有一种方法可以模拟对 WPF 控件的点击?
【问题讨论】:
标签: dotnetbrowser
我正在测试DotNetBrowser,但找不到模拟鼠标移动和鼠标点击的方法。是否可以不使用 JavaScript 而只使用组件的方法?
它必须适用于页面中的 Flash 元素。因此通过 JavaScript 模拟点击和移动将无济于事。
或者也许有一种方法可以模拟对 WPF 控件的点击?
【问题讨论】:
标签: dotnetbrowser
根据documentation应该很简单simulate a click。
using DotNetBrowser;
using DotNetBrowser.DOM;
using DotNetBrowser.Events;
...
Browser browser = BrowserFactory.Create();
browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
{
if (e.IsMainFrame)
{
Browser browser = e.Browser;
DOMDocument document = browser.GetDocument();
DOMElement link = document.GetElementById("button");
if (link != null)
{
link.Click();
}
}
};
browser.LoadHTML("<html><body><button id='button' " +
"onclick=\"alert('Button has been clicked!');\">Click Me!</button>" +
"</body></html>");
【讨论】:
DOMElement 是 DotNetBrowser 的 .Net 组件。正如您在示例代码中看到的那样,Click 是在 C# 代码中调用的 - 仅包含 JavaScript 部分以表明单击正在工作。该文档没有提及有关鼠标移动的任何内容。如果你想操纵 Flash,这可能行不通,因为它是 Plugin
目前 WPF 不支持在某个位置模拟鼠标移动/单击。 DotNetBrowser 也没有用于移动鼠标的 API。
您可以使用非托管函数来代替它。以下帖子有您需要的代码示例:https://stackoverflow.com/a/8273118/6560605
更新
我们发布了支持模拟鼠标事件的 DotNetBrowser 1.8。您可以通过下一个链接查看一些示例:Simulating mouse input。
【讨论】: