webbrowser 获取元素有关问题 getElementBy 反向获取ALL序号有关问题
webbrowser 获取元素问题 getElementBy 反向获取ALL序号问题标题比较抽象,我说简单说不清楚具体如下:我的X
webbrowser 获取元素问题 getElementBy 反向获取ALL序号问题
标题比较抽象,我说简单说不清楚
具体如下:
我的XP VB6 不考虑 。net编程,也就是说 很多 webbroser新语法 我用不了,很伤心。。。
想做点事情 :自动登录 QQmail
遇到问题:
先提供 http://m.mail.qq.com/ 网页源码
HTML code<FORM action=http://w44.mail.qq.com/cgi-bin/login method=post><DIV class=topbar><IMG class=logo alt=QQ邮箱 src="/zh_CN/htmledition/images/mobile/mobile_logo.gif"> </DIV><DIV class="titlebar tbold">登录邮箱</DIV><DIV class=content><INPUT type=hidden value=xhtml name=f><INPUT type=hidden name=tfcont><DIV><DIV>帐号:</DIV><INPUT id=uin size=10 name=uin>@<SELECT style="WIDTH: 130px" name=aliastype><OPTION value=@qq.com selected>qq.com</OPTION><OPTION value=vip>vip.qq.com</OPTION><OPTION value=fox>foxmail.com</OPTION></SELECT></DIV><DIV><DIV>密码:</DIV><INPUT id=pwd type=password size=10 value="" name=pwd autocomplete="off"></DIV><DIV style="MARGIN-TOP: 4px"><INPUT type=checkbox CHECKED value=1 name=mss>记住我</DIV><DIV style="MARGIN-TOP: 4px"><INPUT class=btn1 type=submit value=登录 name=btlogin></DIV><DIV class=botbar><DIV style="FONT-WEIGHT: normal">视图模式:<B>基本版</B> | <A href="http://mail.qq.com/cgi-bin/loginpage?f=html">标准版</A></DIV><DIV>?2011 Tencent Inc.</DIV></DIV></FORM></DIV>
这个页面很简单。3个坑要处理。。。。
这个代码我测试是可以用的。。
webBrowser1.Document.Forms(0).uin.setAttribute "value", strUname
webBrowser1.Document.Forms(0).aliastype.setAttribute "value", "fox"
webBrowser1.Document.Forms(0).pwd.setAttribute "value", strUpass
webBrowser1.Document.Forms(0).mss.setAttribute "value", "0"
webBrowser1.Document.Forms(0).submit
但是 吗的 时好时坏,我心都碎了, 特别第一句 一会可用 一会不可用。查看网页源码什么都没有变,就是莫名其妙的不行了有时候, 在程序里也不提示错误-遇到就直接跳出所在sub,如果在调试模式下 快速窗口执行 则提示 “错误变量类型”,
就这个情况。关键问题 时好时坏,根本没法用!
还有几种赋值,不知道为什么 我的环境 vb6 没一个管用的。
webBrowser1.Document.GetElementById("uin").SetAttribute("value", "201010") 这个提示缺少“=”
问题基本说完了,下面想请教各位高手 啦
1. 尽量不要用 枚举方式 对 带ID或者name的文本框 快速 赋值,有什么好的方法,vb6可行的。。net的不要。
2.下拉框 列表框 设置 选择项
3.任何快速设置都没有 枚举保险 ,所以我现在最想最想知道的是 ,用 GetElementBy 可以获取一个元素,比如 GetElementById("uin") ,那么其实 这个唯一的input就给找出来了,而我现在想要的是,这个input在 所有元素中webBrowser1.Document.All(I) 排行老几(I)? 也就是说我是否可以用 GetElementBy 迅速得到 某个带有唯一ID的元素 在webBrowser1.Document.All(I) 的 i??? 因为知道I一会我就可以 直接 用 webBrowser1.Document.All(I)。click还是。href等等操作了,大家也许会说 那你直接用GetElementBy跟着操作好了, 不行,因为不问题,有时候会可以,有时候不可以,上面我也说了,为什么我不知道,吗的,因为这个郁闷了很久了。。。。 为了稳定,一次又一次的枚举。。。。唉
大体如上,希望大家帮研究下,谢谢了。不胜感激。。
[解决办法]看完需要半小时