如何以编程方式单击ASP.NET网页上的按钮?

我试图弄清楚如何以编程方式单击网页上的按钮.

具体来说,我有一个带WebBrowser控件的WinForm.一旦它导航到我正在尝试使用的目标ASP.NET登录页面,在DocumentCompleted事件处理程序中,我有以下编码:

HtmlDocument doc = webBrowser1.Document;

HtmlElement userID = doc.GetElementById("userIDTextBox");
userID.InnerText = "user1";

HtmlElement password = doc.GetElementById("userPasswordTextBox");
password.InnerText = "password";

HtmlElement button = doc.GetElementById("logonButton");
button.RaiseEvent("onclick");

这样可以很好地填充用户标识和密码文本框,但是我没有成功获得点击的按钮;我也试过“点击”,“点击”和“onClick” – 还有什么?搜索msdn当然不会给我提供任何线索,也不会提供groups.google.com.我得亲近或许不是 – 有人告诉我应该调用页面的POST方法,但是这样做是不是给出了建议的一部分.

BTW按钮编码:

<input type="submit" name="logonButton" value="Login" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " language="javascript" id="logonButton" tabindex="4" />

解决方法

这是如何运作的?适合我
HtmlDocument doc = webBrowser1.Document;

doc.All["userIDTextBox"].SetAttribute("Value","user1");
doc.All["userPasswordTextBox"].SetAttribute("Value","Password!");
doc.All["logonButton"].InvokeMember("Click");

相关文章

项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并。 使用了...
安装新版本的Nginx(vim /etc/yum.repos.d/nginx.repo) [nginx-stable] name=nginx stable repo baseu...
什么是 SignalR&#160;ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功...
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便。 ## Docker Desktop介绍及安装 Do...
项目开始设计的是运行在windows下,所以一开始采用的是windows服务模式来获取多媒体文件信息,后来要求...
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主...