菜鸟vb问题求解答,关于WebBrowser的表单自动填写

[复制链接]
查看11 | 回复7 | 2021-1-27 06:22:51 | 显示全部楼层 |阅读模式
内部ERP,网页版,领导要求做个程序框架,自动填写用户名和密码。
貌似不难,使用了WebBrowser1.Navigate打开网页后,再用
WebBrowser1.Document.GetElementById("admin").SetAttribute("value","admin")
报错:未将对象引用设置到对象的实例。
看来是再网页未打开前就执行了填写表单
ERP是内网,不存在访问慢的问题。
在WebBrowser1.Navigate和填写表单中放个MsgBox("网页打开完毕")
就能在网页打开后填入内容,不报错。

何解?真为难
代码如下
WebBrowser1.Navigate("oa.XXX.com.cn")
'MsgBox("网页打开完毕")
WebBrowser1.Document.GetElementById("admin").SetAttribute("value","admin")


分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:22:51 | 显示全部楼层
你要做个判断网页完全的加载完毕之后再开始填写账号和密码。
回复

使用道具 举报

千问 | 2021-1-27 06:22:51 | 显示全部楼层
load里
WebBrowser1.Navigate("oa.XXX.com.cn")
然后启用一timer开始

privatevoidtimer1_Tick(objectsender,EventArgse)
{
if(webBrowser1.ReadyState==WebBrowserReadyState.Complete)
{
textBox1.Text+=(s+DateTime.Now.ToString()+":连接服务器成功"+s);
webBrowser1.Document.GetElementById("TxtUserName").InnerText="111";
webBrowser1.Document.GetElementById("TxtUserPwd").InnerText="222";
webBrowser1.Document.GetElementById("ImageButton1").InvokeMember("Click");
timer1.Enabled=false;
}
}

回复

使用道具 举报

千问 | 2021-1-27 06:22:51 | 显示全部楼层
WebBrowser1.Navigate("oa.XXX.com.cn")
DoUntilWebBrowser1.ReadyState=WebBrowserReadyState.Complete'等待网页加载完毕
Application.DoEvents()
Loop
WebBrowser1.Document.GetElementById("admin").SetAttribute("value","admin")
回复

使用道具 举报

千问 | 2021-1-27 06:22:51 | 显示全部楼层
等页面加载完毕后再进行你想要的操作即可
回复

使用道具 举报

千问 | 2021-1-27 06:22:51 | 显示全部楼层
学习了。领导想偷懒!不用记住密码呵呵。
回复

使用道具 举报

千问 | 2021-1-27 06:22:51 | 显示全部楼层
在WebBrowser1.DocumentComplete事件中写填写代码
你的错误是WebBrowser还没有装载完网页你就填写内容了
回复

使用道具 举报

千问 | 2021-1-27 06:22:51 | 显示全部楼层
WebBrowser有个加载完成的事件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行