2015-04-26 62 views
2

首先我需要提一提的是我對Autoit來說很新。Autoit:如何在變量中存儲變化的網頁?

我創建了這個腳本,可以在我的學校爲團體項目自動完成房間預訂過程。我創建了一個可以正常工作的自動登錄腳本。現在我想從加載的頁面訪問不同的元素(複選框,單選按鈕......)。

我的問題是如何保存我登錄的頁面中的各種元素,並對它們執行某些操作?

Func SignIn() 

Global $window = _IECreate("https://roombooking.au.dk/classes/Login.aspx? ReturnUrl=%2fclasses%2fbook.aspx") 
_IELoadWait($window) 
If @error Then Return 
WinSetState("[ACTIVE]", "", @SW_MAXIMIZE) 

Local $username = _IEGetObjByName($window,"ctl00$Main$UsernameBox") 
Local $password = _IEGetObjByName($window,"ctl00$Main$PasswordBox") 
Local $button = _IEGetObjByName($window, "ctl00$Main$LoginBtn") 

_IEFormElementSetValue($username,"abc") 
_IEFormElementSetValue($password,"123") 
_IEAction ($button, "click") 
EndFunc 


Func Room() 


Local $SelectRoom = _IEGetObjByName(**???**,"ctl00$Main$ChangeReqsBtn") 

_IELoadWait($ bwindow) _IEAction($ S526, 「點擊」)

EndFunc 

回答

0

從幫助文件:

#include <IE.au3> 
_IEGetObjByName (ByRef $oObject, $sName [, $iIndex = 0]) 

$ oObject對象變量的InternetExplorer.Application,窗口或框架對象

$ SNAME指定名稱要匹配

對象

$ iIndex如果名稱多次出現,請指定基於0的索引的實例 0(默認值)或正整數返回一個索引的實例 -1返回指定對象

在你的情況下,代碼會是這樣的集合:

本地$ SelectRoom = _IEGetObjByName($窗口,「ctl00 $ Main $ ChangeReqsBtn」)

1

的AutoIt提供了許多不同的方法來HTML文檔檢索。沒有提供有關源代碼,它只能被猜測。

文檔的HTML源文件返回_IEDocReadHTML()(假設您使用的是IE.au3 UDF)。例如:

#include <IE.au3> 

Global Const $oIE  = _IECreate('http://www.google.com/') 
Global Const $sDocHTML = _IEDocReadHTML($oIE) 

_IEQuit($oIE) 
ConsoleWrite($sDocHTML & @LF) 
Exit 0 

提到UDF包含了這些功能中設置的值,以形成元件(查找_IEForm ...()AutoIt's user defined function reference)。

+0

我爲此道歉。我現在已經上傳了這些代碼,希望能夠給大家一些啓示。 –