2016-07-25 7 views
0

DotNetBrowser을 테스트 중이며 마우스 이동 및 마우스 클릭을 시뮬레이트하는 방법을 찾을 수 없습니다. JavaScript를 사용하지 않고 구성 요소의 메소드 만 사용할 수 있습니까?DotNetBrowser에서 마우스 이동 및 마우스 클릭을 시뮬레이션하십시오.

페이지의 플래시 요소에서 작동해야합니다. 따라서 시뮬레이션 클릭 및 자바 스크립트를 통한 이동은 도움이되지 않습니다.

아니면 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

답변 해 주셔서 감사합니다. 자바 스크립트를 통해 클릭하면 플래시에서 작동하지 않습니다. 또한 마우스 이동을 시뮬레이트해야합니다. – user3763845

+0

@ user3763845 아니요. 'DOMElement'는 DotNetBrowser의 닷넷 구성 요소입니다. 샘플 코드에서 볼 수 있듯이 C# 코드에서 'Click'이 호출됩니다. JavaScript 부분은 단순히 클릭이 작동하고 있음을 나타 내기 위해 포함됩니다. 설명서에는 마우스 이동에 대한 언급이 없습니다. 플래시를 조작하고 싶다면, [플러그인] (http://dotnetbrowser-support.teamdev.com/documentation/adobe-flash)이기 때문에 아마 작동하지 않을 것입니다. –

+0

다시 한번 감사드립니다! 다른 구성 요소를 사용하고 있었고 플래시 클릭을 시뮬레이션 할 수 있습니다. 이 구성 요소는 사용자가 컨트롤을 클릭 할 때 Chrome으로 클릭을 보내는 BrowserView가있는 것과 유사해야하므로 클릭 만 시뮬레이션하면됩니다. – user3763845

2

현재 WPF는 특정 위치에서 마우스 이동/클릭의 시뮬레이션을 지원하지 않습니다. DotNetBrowser에는 마우스를 움직일 API도 없습니다.

대신 관리되지 않는 기능을 사용할 수 있습니다. 마우스 이벤트의 시뮬레이션을 지원

은 우리가 DotNetBrowser 1.8 발표했다 https://stackoverflow.com/a/8273118/6560605

UPDATE : 다음 포스트는 당신이 필요로하는 코드 샘플이 있습니다. 다음 링크에서 몇 가지 예를 볼 수 있습니다 : Simulating mouse input.

+0

답변 해 주셔서 감사합니다! 나는 이미 Win32 API를 통한 클릭 시뮬레이션을 사용하려고 시도하고 있지만, 브라우저가 오프 스크린 브라우저라는 문제가있다. 그래서 컨트롤러의 hWnd에서 SendMessage를 사용하려고했습니다. 그러나 숨겨진 컨트롤러가 Win32 메시지를받을 수없는 것으로 보입니다. 어쩌면 브라우저를 클릭하는 방법을 다른 방법으로 추천 할 수 있을까요? 또는 Win32 API를 통해 여전히 수행 할 수 있지만 내 코드가 잘못 되었나요? 브라우저 구성 요소가 정말 좋지만이 옵션은 페이지에서 플래시를 사용할 때 매우 중요합니다. 도움이된다면 WPF 대신 WinForm 컨트롤러를 사용할 수 있습니다. – user3763845