MSHTML - Auto Click for JavaScript confirm dialog

2019-08-13 19:48发布

I am trying to automatically parse/submit a web page using MSHTML (in C#.Net 3.1 WPF WebBrowser control). I can fill the forms, click buttons, and navigate pages without problems.

But I do not know how to automatically click the "OK" button on the JavaScript confirmation dialog which appears when I click the "Submit" button.

C# code:

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();

The confirmation dialog ("Are you sure?") appears. I want to somehow send an "Enter" keystroke to the MSHTML document to automatically confirm the submission.

2条回答
Deceive 欺骗
2楼-- · 2019-08-13 20:04

Since the WebBrowser control is a black box, you should probably research getting a handle to the dialog through the Win32 API. From there you can invoke the 'OK' button. Sorry I can't be more specific than that, as I've never done this particular thing before. Hopefully that's enough to get you researching in the right direction, though.

查看更多
爷的心禁止访问
3楼-- · 2019-08-13 20:14

I finally found myself the way how to suppress confirmation message in WebBrowser control. It is actually shown in javascript function showConfirm(). I insert dummy function showConfirm() at the top of the header of the Browser.Document which overwrites/suppress the original function showConfirm(). The code is busy, but the main idea is clear, and works perfect.

查看更多
登录 后发表回答