如何在变量中存储更改的网页?

时间:2015-04-26 17:43:02

标签: windows internet-explorer 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,"click")
EndFunc

2 个答案:

答案 0 :(得分: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包含设置值以形成元素的函数(在AutoIt's user defined function reference中查找 _IEForm ...()

答案 1 :(得分:1)

从帮助文件:

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

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

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

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

在您的情况下,代码将类似于:

  

本地$ SelectRoom =   _IEGetObjByName($窗口, “ctl00 $ $主ChangeReqsBtn”)