js-求助,关于VBScript,登陆网页之后,无法点击按钮提交

问题描述

求助,关于VBScript,登陆网页之后,无法点击按钮提交

一、我的需求:
1、让脚本自动打开一个网页,填用户名密码,然后登陆;
2、登陆之后,在新的页面有一个按钮,需要让脚本自动点击这个按钮,至此完成所有动作;
#########################

二、我遭遇的问题:
登陆进去之后,在第2步,出现错误,提示:缺少对象:'Document.getElementsByName(...)(...)'
如下图:

#########################
我测试的VBS代码

username = "123456"
password = "123456"
Dim IE
Set IE = WScript.CreateObject("InternetExplorer.Application")

IE.Navigate "http://10.101.226.66/"
IE.Visible = True
Do Until IE.ReadyState = 4
    WScript.Sleep 1000
Loop
IE.Document.getElementsByName("userid")(0).value = username
IE.Document.getElementsByName("passwd")(0).value = password
IE.Document.getElementsByName("postsheet")(0).click
Do Until IE.ReadyState = 4
    WScript.Sleep 1000
Loop
IE.Document.getElementsByName("Submits")(0).click

#############################
就是这一句:IE.Document.getElementsByName("Submits")(0).click 一直出问题。语法都没错。
#############################

三、我的猜想:

1)网页元素Name是否错误?
以下是我登陆之后新界面的源代码:

 <tr> <td width='2%' height='26'> </td><td width='17%' height='26'><font size='4'>员工姓名:</font></td><td width='17%' height='26'> 张三</td><td width='22%' height='26'>当前时间:</td> <td width='37%' height='26'>2015-4-16 8:18:14</td></tr><tr><td height='26'> </td></tr><tr><td colspan='5' height='38'><form method='POST' action='Sign.asp'><p></p><p align='center'><select size=1 name='SignContent1'><option selected value= 上午签到>上午签到</option></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='submit' style='WIDTH: 102; HEIGHT: 22' value='提交' name='Submits'></p>   </form></td></tr><tr><td colspan='10'><hr></td></tr><tr><td height='50' colspan='10'><center><font size='5'>考勤</font><font size='2' color=red>其他<center></td></tr><tr><td colspan=10><form method='POST' action='Sign.asp' ><table><tr><td>值班人员一览</td></tr><tr align='center'><td colspan=10>值班信息 </td></tr></table><table><tr><td colspan=10>签到完毕</tr></table></form></td></tr><tr><td colspan='10'></td></tr>

################################
我上面的"Name"元素就是从这一句获取的:

 <input type='submit' style='WIDTH: 102; HEIGHT: 22' value='提交' name='Submits'>

但一直提示缺少对象,为什么??

2)我对js不熟悉,我们这个签到网页是登陆之后,有一个签到按钮,按提交之后,按钮就隐藏了,是否跟这个有关**??
我贴一下签到前和签到后的源代码

签到前:

 <tr> <td width='2%' height='26'> </td><td width='17%' height='26'><font size='4'>员工姓名:</font></td><td width='17%' height='26'> 张三</td><td width='22%' height='26'>当前时间:</td> <td width='37%' height='26'>2015-4-16 8:18:14</td></tr><tr><td height='26'> </td></tr><tr><td colspan='5' height='38'><form method='POST' action='Sign.asp'><p></p><p align='center'><select size=1 name='SignContent1'><option selected value= 上午签到>上午签到</option></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='submit' style='WIDTH: 102; HEIGHT: 22' value='提交' name='Submits'></p>   </form></td></tr><tr><td colspan='10'><hr></td></tr><tr><td height='50' colspan='10'><center><font size='5'>考勤</font><font size='2' color=red>其他<center></td></tr><tr><td colspan=10><form method='POST' action='Sign.asp' ><table><tr><td>值班人员一览</td></tr><tr align='center'><td colspan=10>值班信息 </td></tr></table><table><tr><td colspan=10>签到完毕</tr></table></form></td></tr><tr><td colspan='10'></td></tr>

#####################################

签到后:

 您今天已经签到注销完毕.<tr><td colspan='10'><hr></td></tr><tr><td height='50' colspan='10'><center><font size='5'>值班</font><font size='2' color=red><center></td></tr><tr><td colspan=10><form method='POST' action='Sign.asp' ><table><tr><td>值班人员一览</td></tr><tr align='center'><td colspan=10>值班信息 </td></tr></table><table><tr><td colspan=10>签到完毕</tr></table></form></td></tr><tr><td colspan='10'></td></tr>

#####################################

3)是否登陆进去之后,对于新页面的按钮的点击事件,还需要补充别的代码?Document.getElementsByName(...)(...)获取的依然是前面登陆界面的元素??


诚意求教,盼高人回复!

解决方案

 IE.Document.getElementsByName("postsheet")(0).click
Do Until IE.ReadyState = 4
    WScript.Sleep 1000
Loop
msgbox (IE.Document.body.innerHTML)''增加这句看看是否是登陆后需要签到的页面,如果不是说明密码用用户错了跳转到其他页面当然找不到对象,也可能是签到过了,不再显示签到表单导致找不到对象

'改这样判断是否存在按钮,存在再点击
if IE.Document.getElementsByName("Submits").length>0 then IE.Document.getElementsByName("Submits")(0).click

解决方案二:

推测问题出在下面这句

 IE.Document.getElementsByName("postsheet")(0).click
Do Until IE.ReadyState = 4  //click后页面可能没有刷新,所以状态还是原来的状态。把这个改成是否能够获取到Submits节点作为条件试试,看是不是这个原因
    WScript.Sleep 1000
Loop
时间: 2024-09-17 08:10:15

js-求助,关于VBScript,登陆网页之后,无法点击按钮提交的相关文章

js jquery-JS/jQuery实现默认显示部分文字点击按钮显示全部内容

问题描述 JS/jQuery实现默认显示部分文字点击按钮显示全部内容 <!doctype html> JS实现默认显示部分文字,点击按钮显示全部 民间机构提前3天预报大理地震 地震局称违法 17日大理州5.0级地震发生之后,在微博上一条曾在3天前就预测大理将发生5.0级地震的微博受到了很多网友的关注. 记者联系上了微博博主,该博主表示,他是通过分析云南省地震局官方网站的数据得出的预报信息.对此,省地震局回应表示,地震局欢迎民间机构与地震局进行一些学术上的探讨和交流,但民间机构对外公开发布地震预

请问框架网页如何实现点击按钮跳转多个框架页面?

问题描述 初学c#写网页,现在面临棘手问题,向各位达人请教,具体情况如下:----------------------------------------a框架----------------------------------------|b框架||b的|b的子框架d子框架c|||||-----------------------------------------网页框架结构如上,整个页面在上下分为a.b2个框架,然后b框架又左右分割为c.d2个子框架.默认加载页面显示a.b两个框架,b框架

网页-表单自动填写内容提交

问题描述 表单自动填写内容提交 每天更新数据到mysql上.然后登陆网站,从数据库里面查找相关填表内容,然后自动填写进打开的网页表单内,自动点击提交,这个web网页 是别人的 解决方案 web automation的方式点击表格提交 解决方案二: 还可以浏览器插件,插入javascript来操作web页面 解决方案三: 下载httpanalyzerstd工具截取别人网站的提交动作的数据包,然后分析数据包格式构造,具体怎么操作自行百度,然后用使用http协议post方法提交,只要你数据包构造正确,

JavaScript实现点击按钮切换网页背景色的方法_javascript技巧

本文实例讲述了JavaScript实现点击按钮切换网页背景色的方法.分享给大家供大家参考,具体如下: 这里演示JavaScript用按钮随意变换背景颜色,每点击一下按钮,就可以随机改变一种网页背景颜色.颜色值事先是保存在JS的数组里,你在代码里会发现他们,若不想要某个颜色,就替换掉即可. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-btn-click-rand-bgcolor-codes/ 具体代码如下: <!DOCTYPE HTML

点击按钮-java后台响应问题求助help

问题描述 java后台响应问题求助help 问题是这样的:终端点击按钮出发调用后台,debug模式下,第一次调用进入后台方法了,第2次再点击按钮却没有进来 (是在第一次方法调用未执行完毕的情况下进行第2次点击的),请问这是什么问题.后台框架是struts1 解决方案 肯定是做约束了,未返回前,不能再次触发 解决方案二: 你是用ajax调用的吗?如果是需要注意缓存问题,可能第二次就直接从缓存中取了.可以在url后面加上一个时间戳 如new Date().getTime().如果是jquery需要加

用ssh写的一个小的登陆网页老报这个错是什么原因?怎么解决?新手求助!请多多帮助!

问题描述 用ssh写的一个小的登陆网页老报这个错是什么原因?怎么解决?新手求助!请多多帮助! 2015-9-18 13:15:20 org.apache.catalina.core.AprLifecycleListener init信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.l

Android实现二维码扫描并登陆网页_Android

之前写过一个二维码扫描demo,用的Zxing的框架,点击下载,后续扫描二维码中出现一些问题,比如解决压缩图片,调整扫描窗口大小等等.后续单位要求做扫描登录实现,发现难点就是怎么知道你扫描的是这台电脑,后台必须获取到(后台技术的问题)然后把这个参数给我,再传递到后台,后台判断登录即可.这样自己扫描后直接传递个参数就可以实现登录了. 效果如下: 大概代码实现:扫描跳转: //扫描登录a case R.id.tv_more_qr: if (PventQuickClick.isFastDoubleCl

原生js实现的贪吃蛇网页版游戏完整实例

  本文实例讲述了原生js实现的贪吃蛇网页版游戏.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 7

JS实现点击按钮后框架内载入不同网页的方法

  本文实例讲述了JS实现点击按钮后框架内载入不同网页的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans