【问题标题】:Simulate mouse move in and mouse click in DotNetBrowser在 DotNetBrowser 中模拟鼠标移入和鼠标点击
【发布时间】:2016-07-25 07:09:07
【问题描述】:

我正在测试DotNetBrowser,但找不到模拟鼠标移动和鼠标点击的方法。是否可以不使用 JavaScript 而只使用组件的方法?

它必须适用于页面中的 Flash 元素。因此通过 JavaScript 模拟点击和移动将无济于事。

或者也许有一种方法可以模拟对 WPF 控件的点击?

【问题讨论】:

    标签: dotnetbrowser


    【解决方案1】:

    根据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>");
    

    【讨论】:

    • 感谢您的回答!我猜它是通过 JavaScript 点击的,所以它不能在 Flash 上运行。而且我还需要模拟鼠标移动。
    • @user3763845 不,它没有。 DOMElement 是 DotNetBrowser 的 .Net 组件。正如您在示例代码中看到的那样,Click 是在 C# 代码中调用的 - 仅包含 JavaScript 部分以表明单击正在工作。该文档没有提及有关鼠标移动的任何内容。如果你想操纵 Flash,这可能行不通,因为它是 Plugin
    • 再次感谢!我正在使用其他组件,它们允许模拟对 Flash 的点击。我认为这个组件必须有类似的东西,因为它们有 BrowserView,当用户点击控件时,它会向 Chrome 发送点击,所以我只需要模拟点击。
    【解决方案2】:

    目前 WPF 不支持在某个位置模拟鼠标移动/单击。 DotNetBrowser 也没有用于移动鼠标的 API。

    您可以使用非托管函数来代替它。以下帖子有您需要的代码示例:https://stackoverflow.com/a/8273118/6560605

    更新

    我们发布了支持模拟鼠标事件的 DotNetBrowser 1.8。您可以通过下一个链接查看一些示例:Simulating mouse input

    【讨论】:

    • 感谢您的回答!我已经在尝试通过 Win32 API 模拟点击,但是我的浏览器是屏幕外浏览器的问题。这就是为什么我也尝试将 SendMessage 与控制器的 hWnd 一起使用。但看起来隐藏控制器无法接收 Win32 消息。也许您可以推荐一些其他方式如何点击浏览器?或者也许仍然可以通过 Win32 API 来做,但我的代码是错误的?我真的很喜欢你的浏览器组件,但这个选项对我来说非常重要,因为我们在页面上使用 Flash。如果有帮助,我可以使用 WinForm 控制器而不是 WPF。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    相关资源
    最近更新 更多