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

Код вызывает следующее сообщение об ошибке:AutoIt Ошибка с IFRAME

-> COM ошибка, обнаруженная в ITSM-GUI-Automation.au3
----> $ IEComErrorScriptline = 106
- -> $ IEComErrorNumberHex = 80020003
----> $ IEComErrorNumber = -2147352573
----> $ IEComErrorWinDescription = Member не найден.
----> $ IEComErrorDescription =
----> $ IEComErrorSource =
----> $ IEComErrorHelpFile =
----> $ IEComErrorHelpContext = 0
----> $ IEComErrorLastDllError = 0

Странно, что $ max получает значение 3, но тогда он не может найти фреймы. Как это можно найти и сразу не найти?

ответ

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 
Смежные вопросы