簡體   English   中英

如何將變化的網頁存儲在變量中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM