c# 点击webBrowser里面网页按钮的实现

wbwb2208 2012-09-18 09:08:23
webBrowser1.Navigate("http://120.199.52.102/sword?tid=WsxtXtzySyxgBLH_init")
webBrowser1.Document.GetElementById("btnLogin").InvokeMember("onclick");
报错"为空或者不是对象"
点击"普通用户登录"按钮的代码应该怎么写?
...全文
455 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wbwb2208 2012-09-24
  • 打赏
  • 举报
回复
各位,我修改过了,还是不行,仍旧报错"为空或者不是对象",你们手头有没有工具呀,实际执行下看看
private void Form_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://120.199.52.102/sword?tid=WsxtXtzySyxgBLH_init")
}

private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
{
webBrowser1.Document.GetElementById("btnLogin").InvokeMember("onclick");
}
}
kunkun0921 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

忘了说明了,我是如下面这样写,仍旧报错"为空或者不是对象"
private void Form_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://120.199.52.102/sword?tid=WsxtXtzySyxgBLH_init")
}

private void webBrowser_Doc……
[/Quote]
你的事件里面没有判断网页是否加载完毕,需要判断状态的

if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
{
webBrowser1.Document.GetElementById("btnLogin").InvokeMember("onclick");
}
wbwb2208 2012-09-24
  • 打赏
  • 举报
回复
忘了说明了,我是如下面这样写,仍旧报错"为空或者不是对象"
private void Form_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://120.199.52.102/sword?tid=WsxtXtzySyxgBLH_init")
}

private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.GetElementById("btnLogin").InvokeMember("onclick");
}
可以麻烦各位看下"http://120.199.52.102/sword?tid=WsxtXtzySyxgBLH_init"有何不同吗?我某些网页用上面的语句可以正常运行的,我看关键是这张网页
王子文龙 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用楼主 的回复:
webBrowser1.Navigate("http://120.199.52.102/sword?tid=WsxtXtzySyxgBLH_init")
webBrowser1.Document.GetElementById("btnLogin").InvokeMember("onclick");
报错"为空或者不是对象"
点击"普通用户登录"按钮的代码应该怎么写?
……
[/Quote]
应该是Click吧
kunkun0921 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
webBrowser1.Navigate("http://120.199.52.102/sword?tid=WsxtXtzySyxgBLH_init")
webBrowser1.Document.GetElementById("btnLogin").InvokeMember("onclick");
报错"为空或者不是对象"
点击"普通用户登录"按钮的代码应该怎么写?
[/Quote]
这里肯定会报空对象的,因为你在执行InvokeMember方法的时候,你页面还没有加载完毕,也就是说你的按钮尚未加载完毕。如果你想自动登录,你需要将webBrowser1.Document.GetElementById("btnLogin").InvokeMember("onclick");
这句代码写在DocumentCompleted事件中
如:

void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
{
webBrowser1.Document.GetElementById("btnLogin").InvokeMember("onclick");
}
}
wbwb2208 2012-09-18
  • 打赏
  • 举报
回复
请问POST应该怎么写?
hongfei1230 2012-09-18
  • 打赏
  • 举报
回复
为什么不用POST 呢

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧