Board logo

標題: [發問] 透過 Sendkeys 語法開啟有帳號密碼的網頁問題 [打印本頁]

作者: jsleee    時間: 2011-9-21 22:15     標題: 透過 Sendkeys 語法開啟有帳號密碼的網頁問題

請教先進:
    Sendkeys 功能可以模擬 鍵盤輸入的動作,將資訊輸入....
    但是要用在 開啟有 帳號密碼 的網頁,經常碰到困難,以下提出2點困難點,
    看看有無 先進可以指點迷津....
    1. 不同的網頁 帳號密碼 所使用的代號都不一樣,經常不得其門而入,不知道有無 固定的模式 可以取得該資訊,
        否則都不知道要將 帳號/密碼 的值 Sendkeys 給甚麼參數......
    2. Sendkeys 的動作時間點問題,有時因為開啟網頁速度問題,會發生太早 Sendkeys,導致 帳號密碼 位置錯亂....
        這一點有無 較安全的解決方式?
    謝謝

JS
作者: jsleee    時間: 2011-9-24 08:44

都沒有人回應?
希望有人可以分享 Sendkeys 開啟有帳號密碼 的網頁的 例子....
並分享訣竅....
謝謝
作者: jsleee    時間: 2011-10-3 21:51

還是 這個功能 有其他的替代方式 或更好的方法?
作者: luhpro    時間: 2011-10-3 22:20

請教先進:
    1. 不同的網頁 帳號密碼 所使用的代號都不一樣,經常不得其門而入,不知道有無 固定的模式 可以取得該資訊,
        否則都不知道要將 帳號/密碼 的值 Sendkeys 給甚麼參數......
jsleee 發表於 2011-9-21 22:15

這點無解,
網頁要怎麼設計與參數名稱要怎麼定是隨人喜好的,
所以只有遷就網頁的內容來定了.

至於第2點我不會.
作者: gstone    時間: 2011-10-4 02:25

是這樣嗎?
google搜尋為例 :

Sub test()
Dim objIE As Object
Dim url As String
Set objIE = CreateObject("InternetExplorer.Application")
url = "http://www.google.com.tw/webhp?hl=zh-TW"   '網址
objIE.Visible = True
objIE.Navigate url
  
Do While objIE.Busy = True   '待網頁載入完成
    DoEvents
Loop

objIE.Document.all("q").Value = "test"   '欲輸入文字方塊的值。
objIE.Document.all("btnG").Click   '確認鍵
End Sub
作者: jsleee    時間: 2011-10-4 21:30

回復 4# luhpro

謝謝您,了解您的意思
那有比較快的方式可以得知 他的帳號 & 密碼 個使用甚麼代號嗎?
作者: jsleee    時間: 2011-10-4 21:36

回復 5# gstone

謝謝您....
很接近我想要的東西....
請教您程式碼中的意思:
1. 請問 DoEvents 是甚麼意思?
2. Document.all("q") 是代表甚麼?
3. Document.all("btnG") 是代表 按鈕嗎?如何得知他的代號?
請協助抽空回覆,謝謝您.....


Do While objIE.Busy = True   '待網頁載入完成
     DoEvents
Loop

objIE.Document.all("q").Value = "test"   '欲輸入文字方塊的值。
objIE.Document.all("btnG").Click   '確認鍵
作者: luhpro    時間: 2011-10-4 21:42

本帖最後由 luhpro 於 2011-10-4 21:45 編輯
回復  luhpro
謝謝您,了解您的意思
那有比較快的方式可以得知 他的帳號 & 密碼 個使用甚麼代號嗎?
jsleee 發表於 2011-10-4 21:30

如果你的瀏覽器是 IE 的話,
可以點選功能表(若看不到請按一下 Alt 鍵) 的檢視-> 原始碼,
當然, 還需要一點點的網頁語言解晰. (例如上面網頁的 btnG 就可以找到)
作者: jsleee    時間: 2011-10-4 21:48

回復 8# luhpro


謝謝您,我再嘗試看看
作者: jimmyhk    時間: 2011-10-6 21:18

是這樣嗎?
google搜尋為例 :

Sub test()
Dim objIE As Object
Dim url As String
Set objIE = Creat ...
gstone 發表於 2011-10-4 02:25


有一點問題,
我現在看到其中一個網站的原碼如下:
  1.   <INPUT TYPE="submit" VALUE="Login">
  2.   <INPUT TYPE="button" NAME="p_request" VALUE="Cancel"
複製代碼
Cancel 是有 name 的, 這個我可以使用.
但 Login 沒有 name, 我應如何寫?
作者: jimmyhk    時間: 2011-10-10 06:45

有一點問題,
我現在看到其中一個網站的原碼如下:Cancel 是有 name 的, 這個我可以使用.
但 Login 沒有 ...
jimmyhk 發表於 2011-10-6 21:18



有人遇過嗎?
作者: Hsieh    時間: 2011-10-10 09:14

回復 11# jimmyhk


    這是表單送出
必須使用submit方法
所以你要以該表單做submit
作者: jimmyhk    時間: 2011-10-10 13:36

回復  jimmyhk


    這是表單送出
必須使用submit方法
所以你要以該表單做submit
Hsieh 發表於 2011-10-10 09:14


如果咁講即係冇得做?
作者: Hsieh    時間: 2011-10-10 15:09

回復 13# jimmyhk

發言請用普通話
以經濟部的滿意度調查表為例
  1. Dim MyIe As InternetExplorer, MyDoc As HTMLDocument
  2. Sub CommandButton2_Click()  '開啟問卷
  3. Set MyIe = CreateObject("InternetExplorer.Application")
  4. With MyIe
  5. .Visible = True
  6. .navigate "http://www.moeasmea.gov.tw/ap.asp?xdURL=sVote/vote01.asp&subjectId=9211&ctNode=654"
  7. Do Until .readyState = READYSTATE_COMPLETE: Loop
  8. DoEvents
  9. Set MyDoc = .document
  10. End With
  11. End Sub

  12. Private Sub CommandButton1_Click()  '送出問卷前請先填完問卷在按此鍵做送出動作
  13. With MyDoc
  14. .all("form1").submit
  15. MsgBox "問卷調查表已送出"
  16. End With
  17. MyIe.Quit
  18. Set MyIe = Nothing
  19. Set MyDoc = Nothing
  20. End Sub
複製代碼

作者: jimmyhk    時間: 2011-10-10 15:38

回復 14# Hsieh


對不起, 一時手快就打了口語.

因為在街外不能連接內聯網,
明天回到公司試試用 submit  .

謝謝




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)