程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> js-求助,關於VBScript,登陸網頁之後,無法點擊按鈕提交

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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved