2016-07-25 5 views
0

Я тестирую DotNetBrowser и не могу найти способ имитации перемещения мыши и щелчка мыши. Можно ли обойтись без использования JavaScript, а просто с помощью методов компонента?Имитировать перемещение мыши и щелчок мыши в DotNetBrowser

Он должен работать с элементами Flash на странице. Таким образом, щелчок мышью и перемещение по JavaScript не помогут.

Или, может быть, есть способ имитации щелчка на элементе управления WPF?

ответ

2

Согласно 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>"); 
+0

Благодарим за ответ! Думаю, он нажимает на JavaScript, поэтому он не будет работать на Flash. А также мне нужно моделировать движение мыши. – user3763845

+0

@ user3763845 Нет, это не так. 'DOMElement' является .Net-компонентом DotNetBrowser. Как вы можете видеть в примере кода, 'Click' вызывается в коде C# - часть JavaScript просто включена, чтобы показать, что щелчок работает. В документации ничего не говорится о перемещении мыши. Если вы хотите управлять Flash, это, вероятно, не сработает, поскольку это [плагин] (http://dotnetbrowser-support.teamdev.com/documentation/adobe-flash) –

+0

Еще раз спасибо! Я использовал другие компоненты, и они позволяют имитировать щелчок по Flash. Я думаю, что этот компонент должен иметь нечто похожее, поскольку у них есть BrowserView, который отправляет клики в Chrome, когда пользователь нажимает на элемент управления, поэтому мне просто нужно имитировать эти клики. – user3763845

2

В настоящее время WPF не поддерживает моделирование движения/щелчка мыши в определенном положении. DotNetBrowser также не имеет API для перемещения мыши.

Вместо этого вы можете использовать неуправляемые функции. Следующий пост имеет пример кода, вам нужно: https://stackoverflow.com/a/8273118/6560605

UPDATE

Мы выпустили DotNetBrowser 1,8, который поддерживает моделирование событий мыши. Вы можете увидеть некоторые примеры по следующей ссылке: Simulating mouse input.

+0

благодарим за ответ! Я уже пытаюсь использовать симуляцию щелчка через Win32 API, но проблема в том, что мой браузер - браузер за пределами экрана. Вот почему я также попытался использовать SendMessage с hWnd контроллера. Но похоже, что скрытый контроллер не может получать сообщения Win32. Может быть, вы можете порекомендовать другой способ, как нажать на браузер? Или, возможно, это возможно сделать через Win32 API, но мой код неправильный? Мне очень нравится ваш компонент Browser, но этот параметр очень важен для меня, поскольку мы используем Flash на страницах. Я могу использовать контроллер WinForm вместо WPF, если это поможет. – user3763845