2013-12-12 27 views
0
$aArray = _IEFrameGetCollection($ObjIE) 
$max = @extended 
ConsoleWrite("Array Length: " & $max & @CR) 
For $item in $aArray 
    ConsoleWrite("Value" & $item.src) 
Next 

該代碼使得以下錯誤:AutoIt的錯誤有關iframe

- 在遇到ITSM-GUI-Automation.au3
> COM錯誤----> $ IEComErrorScriptline = 106
- - > $ IEComErrorNumberHex = 80020003
----> $ IEComErrorNumber = -2147352573
----> $ IEComErrorWinDescription =找不到成員。
----> $ IEComErrorDescription =
----> $ IEComErrorSource =
----> $ IEComErrorHelpFile =
----> $ IEComErrorHelpContext = 0
----> $ IEComErrorLastDllError = 0

奇怪的是,$ max被設置爲3,但之後無法找到iframe。它如何找到它並立即找不到它?

回答

1

這是因爲我對Autoit對象缺乏瞭解。這不會返回一個對象數組,而是一個必須通過不同方式訪問的集合。

希望這可以幫助別人。

$collection = _IEFrameGetCollection($ObjIE) 
$max = @extended 
ConsoleWrite("Array Length: " & $max & @CR) 
For $item = 0 to $max - 1 
    $obj = IEFrameGetCollection($ObjIE, $item) 
    ConsoleWrite("Value" & $item.src) 
Next 
0
#include <IE.au3> 

Local $oIE = _IE_Example("frameset") 
Local $oFrames = _IEFrameGetCollection($oIE) 
Local $iNumFrames = @extended 
For $i = 0 To ($iNumFrames - 1) 
    Local $oFrame = _IEFrameGetCollection($oIE, $i) 
    $FrameHTML = _IEDocReadHTML($oFrame); or 
    $FrameHTML = _IEPropertyGet($oFrame, "innerhtml"); or 
    $FrameHTML = _IEPropertyGet($oFrame, "outerhtml") 
    ConsoleWrite($FrameHTML & @LF) 
Next