为什么不执行点击?

qqx3502 2008-07-17 12:51:57
说明:想写个自动进入雅虎邮箱的代码,窗体上1个WebBrowser窗口WebBrowser1,2个按钮Command1和Command2,雅虎邮箱登录页的源码(只摘录了对我们操作有用的源码)如下:

<dl><dt>邮箱地址</dt><dd style="position:relative;"> <input type="text" value=""

name="login" class="inp" id="emailinput" />
<div id="emailct"></div</dd></dl>
<dl ><dt> </dt><dd>例如:mail@yahoo.com.cn <p>loveyahoo@yahoo.cn</p></dd></dl>
<dl ><dt>密码</dt><dd><input type="password" name="passwd" class="inp"

id="passinput"/></dd></dl>
<dl class="checkbox" ><dt> </dt><dd>
<i id="remadress"><input type="checkbox" onclick="checkit(1);" id="remember" checked

/><input type="hidden" id="remember_" name=".remember" value="y"/><label id="C3"

for="remember">记住地址</label><div id="ctip" class="tip" style="display:none;">选中此功能,

浏览器将记录您的邮箱地址!</div></i><em class="g" > </em><i id="persistent"><input

type="checkbox" onclick="checkit(2);" value="y" name=".persistent" id="checkbox"/><label

for="checkbox">下次自动登录<span style="display: none;"><strong>8小时内您将不用再次手动登录

。</strong><br/>如果您点击“登出”退出邮箱,我们将使浏览器在本机仅记住您的邮箱地址,您需要

再次输入密码进行登录。这有可能让其他使用本机的用户看到您的邮箱地址,使用公用电脑时,请不要

选中此功能。</span></label></i>
</dd>
</dl>
</div>
<!-- Insert Form }}-->
</div>
<div class="ft">
<div class="sbmit">
<button name="submit" class=btn1 type=submit>登录</button><em class="g" > </em>
<button class="bnreg"

onclick="window.location='https://member.cn.yahoo.com/cnreg/reginfo.html?

id=20000&prop=&done='" type="button">注册</button>
</div>

目标:点Command1进入雅虎邮箱登录页面,点Command2自动登录邮箱(账号:zhangwujiu@yahoo.cn;密码:518518),我写了代码如下,但点Command2时登录不了,好像是不执行点击命令,请大家帮忙分析,谢谢!!!

Private Sub Command1_Click()
WebBrowser1.Navigate "http://mail.cn.yahoo.com/?.done=http%253a%252f%

252fcn.f922.mail.yahoo.com%252fym%252flogin"
End Sub
Private Sub Command2_Click()
Dim vDoc, vTag
Dim i As Integer
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).TagName) = "INPUT" Then
Set vTag = vDoc.All(i)
If vTag.Name = "passwd" Or vTag.Name = "login" Then
Select Case vTag.Name
Case "passwd"
vTag.Value = "518518"
Case "login"
vTag.Value = "zhangwujiu@yahoo.cn"
End Select
ElseIf vTag.Type = "submit" Then
vTag.Click
End If
End If
Next i
End Sub
...全文
82 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqx3502 2008-07-17
  • 打赏
  • 举报
回复
5楼的方法可用,谢谢!!!
6楼的方法不行,但源码里面好像没有ID呀<button name="submit" class=btn1 type=submit>,所以运行时提示对象不支持该属性或方法(指向Set vTag = vDoc.getElementsByID("loginform")),不知怎样更改?
happy_sea 2008-07-17
  • 打赏
  • 举报
回复
把楼上红色的代码改成这样试试:
Set vTag = vDoc.getElementsByID("loginform")
vTag(0).submit
cycy520 2008-07-17
  • 打赏
  • 举报
回复
这样搞定!!!

Private Sub Command1_Click()
WebBrowser1.Navigate "http://mail.cn.yahoo.com/?.done=http%253a%252f%

252fcn.f922.mail.yahoo.com%252fym%252flogin"
End Sub
Private Sub Command2_Click()
Dim vDoc, vTag
Dim i As Integer
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).TagName) = "INPUT" Then
Set vTag = vDoc.All(i)
If vTag.Name = "passwd" Or vTag.Name = "login" Then
Select Case vTag.Name
Case "passwd"
vTag.Value = "518518"
Case "login"
vTag.Value = "zhangwujiu@yahoo.cn"
End Select
ElseIf vTag.Type = "submit" Then
vTag.Click
End If
End If
Next i
Set oEle = vDoc.getElementsByName("submit")
oEle(0).Click

End Sub
qqx3502 2008-07-17
  • 打赏
  • 举报
回复
怎样调用form元素的submit方法来代替提交按钮的click方法来完成提交呢?可以把代码写下吗?我是新手啊!
happy_sea 2008-07-17
  • 打赏
  • 举报
回复
不是,你上面的代码是遍历WebBrowser1.Document中的元素,找到提交按钮以后调用其click方法,这种方法如果无效的话,你可以试试在设置完邮箱和密码后调用form元素的submit方法来代替提交按钮的click方法来完成提交。
qqx3502 2008-07-17
  • 打赏
  • 举报
回复
楼上的大哥,我还是不太明白,您的意思是不是让我把vTag.Click更改为vTag.submit啊?我试了也不行啊!
happy_sea 2008-07-17
  • 打赏
  • 举报
回复
不调用button.click,而是调用form.submit试试

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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