2009-02-25 3 views
1

MSHTML (C# .Net 3.1 WPF WebBrowser 컨트롤)을 사용하여 웹 페이지를 자동으로 구문 분석/제출하려고합니다. 양식을 작성하고 버튼을 클릭하고 문제없이 페이지를 탐색 할 수 있습니다.MSHTML - JavaScript 확인 ​​대화 상자의 자동 클릭

하지만 "제출"버튼을 클릭했을 때 나타나는 JavaScript 확인 ​​대화 상자에서 "확인"버튼을 자동으로 클릭하는 방법을 모르겠습니다.

C# 코드 :

mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)webBrowser.Document; 
mshtml.IHTMLFormElement form = doc.forms.item("inputForm", 0) as mshtml.IHTMLFormElement; 
mshtml.IHTMLElement btnSubmit = form.item("btnFormSubmit", null) as mshtml.IHTMLElement; 
btnSubmit.click(); 

확인은 대화 상자 ("? 당신이 확실")가 나타납니다. 제출을 자동으로 확인하기 위해 MSHTML 문서에 "Enter"키 입력을 어떻게 든 보내고 싶습니다.

답변

0

WebBrowser 컨트롤이 블랙 박스이므로 Win32 API를 통해 대화 상자를 처리하는 방법을 연구해야합니다. 거기에서 '확인'버튼을 호출 할 수 있습니다. 미안하지만 나는이 특정한 일을 한 번도 해 본 적이 없기 때문에 그보다 더 구체적 일 수는 없다. 그래도 올바른 방향으로 연구를 시작하기에 충분합니다.

+0

감사합니다. MSHTML 및 WebBrowser 컨트롤을 사용하여 대화 상자에서 확인 버튼을 클릭하는 간단한 방법을 찾고 있습니다. 이 성가신 대화 창 이외에는 아무 것도 클릭 할 수 없습니다. 나는 어떻게 든 자바 스크립트를 사용하여 HSHTML 문서에 "Enter"키 입력을 보내야합니다. –

+0

JavaScript를 사용하여이를 수행 할 수 없습니다 -이 답변보기 : http://stackoverflow.com/questions/563890/is-there-a-way-to-simulate -a-click-on-an-alert-in-javascript/563905 # 563905 ... 확인은 동일한 방식으로 작동합니다. 그래서 Win32 API를 제안합니다. –

1

마지막으로 WebBrowser 컨트롤에서 확인 메시지를 표시하지 않는 방법을 찾았습니다. 실제로 javascript 함수 showConfirm()에 표시됩니다. 원래 function showConfirm()을 덮어 쓰거나 숨기는 Browser.Document의 머리글 상단에 더미 함수 showConfirm()을 삽입합니다. 코드는 복잡하지만 주요 아이디어는 명확하고 완벽하게 작동합니다.

관련 문제