[英]How to store a changing webpage in a variable?
我的腳本可以自動執行學校中用於小組項目的房間預訂過程。 我創建了一個自動登錄腳本,該腳本運行良好。 現在,我想從加載的頁面訪問不同的元素(復選框,單選按鈕...)。
如何保存已登錄頁面中的各種元素並對其執行某些操作?
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,"click")
EndFunc
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包含用於設置表單元素值的函數(在AutoIt用戶定義的函數參考中的 _IEForm ...()查找)。
從幫助文件:
#include <IE.au3>
_IEGetObjByName ( ByRef $oObject, $sName [, $iIndex = 0] )
$ oObject InternetExplorer.Application,Window或Frame對象的對象變量
$ sName指定要匹配的對象的名稱
$ iIndex如果名稱多次出現,則通過從0開始的索引指定實例(默認值)或正整數返回已索引的實例-1返回指定對象的集合
在您的情況下,代碼將類似於:
本地$ SelectRoom = _IEGetObjByName($ window,“ ctl00 $ Main $ ChangeReqsBtn”)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.