2014-11-22 60 views
2

目前我正在研究打開網頁,輸入登錄名,登錄,輸入一些信息並接收隨機生成的CD密鑰的vbs。從IE中複製隨機生成的文本

有什麼辦法可以複製這張CD key?使用ie.document.getelementbyid我無法找到與CD密鑰相關的任何ID,只能使用包含CD密鑰的整個文本框。

有沒有什麼方法可以精確地指定網頁上我想要的內容?喜歡選擇我想從網站上的行中複製的文本?

CD鍵始終是隨機的。唯一不變的是它會在一個單元格中,並且它有連字符(像任何CD Key)

我只需要提取CD密鑰,以便我可以將其存儲在文本文件等中,如下例所示

Example

編輯:

到目前爲止的代碼:

Set IE = CreateObject("InternetExplorer.Application") 
IE.Visible = 1  
IE.navigate "xxxx" 
Do While (IE.Busy)  
    WScript.Sleep 100  
Loop  
Set Helem = IE.document.getElementByID("UserNameTextBox") 
Helem.Value = "xxxxx"  
Set Helem = IE.document.getElementByID("PasswordTextBox") 
Helem.Value = "xxxxx" 
Set Helem = IE.document.getElementByID("Button1") 
Helem.Click 
Do While (IE.Busy)  
    WScript.Sleep 100  
Loop 
Set Helem = IE.document.getElementByID("generateECodes_PackageDropdown") 
Helem.Value = "430" 
IE.Document.getElementByID("generateECodes_PackageDropdown").FireEvent ("onChange") 
WScript.Sleep 500 
Do While (IE.Busy)  
    WScript.Sleep 500  
Loop 
Set Helem = IE.document.getElementByID("generateECodes_TermDropdown") 
Helem.Value = "5" 
IE.Document.getElementByID("generateECodes_TermDropdown").FireEvent ("onChange") 
Do While (IE.Busy)  
    WScript.Sleep 500  
Loop 
Set Helem = IE.document.getElementByID("generateECodes_Languages") 
Helem.Value = "29" 
IE.Document.getElementByID("generateECodes_Languages").FireEvent ("onChange") 
Do While (IE.Busy)  
    WScript.Sleep 500  
Loop 
Set Helem = IE.document.getElementByID("generateECodes_StoreNumber") 
Helem.Value = "230" 
IE.Document.getElementByID("generateECodes_StoreNumber").FireEvent ("onChange") 
Do While (IE.Busy)  
    WScript.Sleep 500  
Loop 
Set Helem = IE.document.getElementByID("generateECodes_Required") 
Helem.Value = "1" 
Do While (IE.Busy)  
    WScript.Sleep 500  
Loop 
Set Helem = IE.document.getElementByID("generateECodes_Button") 
Helem.Click 
Do While (IE.Busy)  
    WScript.Sleep 500  
Loop 
    Set Helem = IE.document.getElementByID("generateECodes_Table") 


Do While (IE.Busy)  
    WScript.Sleep 100  
Loop 

dim filesys, filetxt, getname, path 
Set filesys = CreateObject("Scripting.FileSystemObject") 
Set filetxt = filesys.CreateTextFile("c:\Something.txt", True) 
path = filesys.GetAbsolutePathName("c:\Something.txt") 
getname = filesys.GetFileName(path) 
filetxt.WriteLine("Password: "+Helem) 
filetxt.WriteLine("Brugernavn: "+Helem) 
filetxt.Close 
+0

這裏就是X的代表主要的代碼我需要提取代碼的照片。 http://i59.tinypic.com/4kz47m.png – Gematria 2014-11-22 13:49:33

+0

向我們展示你到目前爲止所以社區有什麼合作。現在看起來您正在尋求一種代碼編寫服務,而不是這裏的代碼編寫服務。 – Matt 2014-11-22 14:41:03

+0

對不起。有問題發佈,im在工作,這沒有最高優先級:P我編輯了上面的代碼。最後一點,Set Helem = IE.document.getElementByID(「generateECodes_Table」),就是我遇到的問題。將該表的內容提取到txt文件中,最好只提取所需的信息。 – Gematria 2014-11-22 14:59:32

回答

1

從表中列舉的<td>元素,你已經FE tched,並檢查innerText的模式相匹配的CD密鑰:

... 
Set Helem = IE.document.getElementByID("generateECodes_Table") 

Set re = New RegExp 
re.Pattern = "\w{5}(-\w{5}){4}" 
re.IgnoreCase = True 

For Each td In Helem.getElementsByTagName("td") 
    If re.Test(td.innerText) Then cdKey = td.innerText 
Next 
... 
+0

That..is..Beautiful!萬分感謝。我應該開始閱讀一些RE ..我吮吸那個。任何推薦的指南?完美的作品。 – Gematria 2014-11-22 15:22:52

+0

開始[這裏](http://msdn.microsoft.com/en-us/library/6wzad2b2%28v=vs.84%29)。 – 2014-11-22 15:28:15