找回密码
 加入
搜索
查看: 3975|回复: 5

[IE类操作] IE.au3 报错

[复制链接]
发表于 2011-12-22 12:20:04 | 显示全部楼层 |阅读模式
$sText = _IEBodyReadText($oIE)
在调用 _IEBodyReadText的时候报

D:\Program Files\autoit3\Include\IE.au3 (1964) : ==> ???????????("Object").:
Return SetError($_IEStatus_Success, 0, $o_object.document.body.innerText)
Return SetError($_IEStatus_Success, 0, $o_object.document.body^ ERROR

指到
#include <IE.au3>
里的这句
Return SetError($_IEStatus_Success, 0, $o_object.document.body.innerText)


Func _IEBodyReadText(ByRef $o_object)
        If Not IsObj($o_object) Then
                __IEErrorNotify("Error", "_IEBodyReadText", "$_IEStatus_InvalidDataType")
                Return SetError($_IEStatus_InvalidDataType, 1, 0)
        EndIf
        If Not __IEIsObjType($o_object, "browserdom") Then
                __IEErrorNotify("Error", "_IEBodyReadText", "$_IEStatus_InvalidObjectType", "Expected document element")
                Return SetError($_IEStatus_InvalidObjectType, 1, 0)
        EndIf
        ;
        Return SetError($_IEStatus_Success, 0, $o_object.document.body.innerText)
EndFunc   ;==>_IEBodyReadText

不知道是哪里的问题?
发表于 2011-12-22 12:30:52 | 显示全部楼层
完整代码拿出来
 楼主| 发表于 2011-12-22 12:59:50 | 显示全部楼层
本帖最后由 liangxm 于 2011-12-22 13:02 编辑

Func work($address_value, $account_value, $code_value)
       
        $address_value = GUICtrlRead($address,1)
        $account_value = GUICtrlRead($account)
        $code_value = GUICtrlRead($code)
        $account_start = GUICtrlRead($number_start)
        $account_end = GUICtrlRead($number_end)
       
        If $account_start = $account_end Then
               
                $url = "http://"&$address_value&"/xxxx/access?soapaction=config_gm&game_id="&$account_value&"&game_level="&$code_value


                $oIE = _IECreate($url,0,0,1,-1)
               
                $sText = _IEBodyReadText($oIE)
               
                $ie_note = GUICtrlCreateLabel($account_value&$number& @CRLF &$address_value & @CRLF &$code_value & @CRLF &$sText, 20, 270, 460, 120)
                ;;$ie_note = GUICtrlCreateLabel($account_value&$number& @CRLF &$address_value & @CRLF &$code_value & @CRLF, 20, 270, 460, 120)

                _IEQuit ($oIE)
               

               
        Else
               
               
                $mun = 0
               
                For $number = $account_end To $account_start Step -1
                       
                        $mun = $mun + 1

                        $url = "http://"&$address_value&"/xxxx/access?soapaction=config_gm&game_id="&$account_value&$number&"&game_level="&$code_value


                $oIE = _IECreate($url,0,0,1,-1)
               
                $sText = _IEBodyReadText($oIE)
               
                $ie_note = GUICtrlCreateLabel($account_value&$number& @CRLF &$address_value & @CRLF &$code_value & @CRLF &$sText, 20, 270, 460, 120)
                ;;$ie_note = GUICtrlCreateLabel($account_value&$number& @CRLF &$address_value & @CRLF &$code_value & @CRLF , 20, 270, 460, 120)

                _IEQuit ($oIE)


                Next               
               
               
                $ie_note_start = $ie_note - $mun + 1
               
                For $idx = $ie_note_start To $ie_note - 1

                        GUICtrlSetState($idx, $GUI_HIDE)
                Next
               
        EndIf
       
       

       
EndFunc   ;==>GUIChangeItems
 楼主| 发表于 2011-12-22 13:02:03 | 显示全部楼层
本帖最后由 liangxm 于 2011-12-22 13:07 编辑

不加_IEBodyReadText就没问题,而且好像有时虽然会有警告消息但也能运行。

怀疑是不是ie取回的数据有问题造成的?


ps,不会是ie8升级到ie9的问题吧- -
 楼主| 发表于 2011-12-26 09:20:08 | 显示全部楼层
最后顶一顶
发表于 2011-12-27 16:33:02 | 显示全部楼层
加个au3   /au3吧 这样看着好累  所以我没看具体代码  
在加载网页之后加一个等待网页加载完成之类的延时
新打开网页的时候加一个
_IELoadWait($oIE)

_IEBodyReadTex之前用一个

Do
                Sleep (50)
        Until $oie.readyState() = 4
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 15:43 , Processed in 0.095890 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表