如何在变量中存储不断变化的网页



我的脚本自动执行学校的小组项目房间预订流程。我创建了一个工作正常的自动登录脚本。现在我想从加载的页面访问不同的元素(复选框、单选按钮......

如何从我登录的页面中保存各种元素并对其执行某些操作?

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

来自帮助文件:

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

$oObject InternetExplorer.Application、Window 或 Frame 对象的对象变量

$sName 指定要匹配的对象的名称

$iIndex 如果名称出现多次,则通过从 0 开始的索引指定实例 0(默认值)或正整数返回索引实例 -1 返回指定对象的集合

在您的情况下,代码将如下所示:

本地$SelectRoom = _IEGetObjByName($window,"ctl00$Main$ChangeReqsBtn")

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 的用户定义函数引用中)。

相关内容

  • 没有找到相关文章

最新更新