找回密码
 加入
搜索
查看: 2452|回复: 7

[系统综合] 请问编译后。脚本提示(对变量类型必须为对象类型) 错误提示

  [复制链接]
what6621 该用户已被删除
发表于 2016-3-24 14:01:55 | 显示全部楼层 |阅读模式
脚本打开 在关闭 就报错。   这里的打开关闭是指   (打开脚本即可关闭)    可以运行就是 一直提示错误。在编译器里面按F5 没错误。  有知道吗请教下,
#RequireAdmin

#include <IE.au3>
#include <File.au3>

Dim $oIE = _IECreate("http://www.unclenoway.com/", 0, 1, 1, 0)
Sleep(1000)
$Ele = _IEGetObjById($oIE, "gender-f")
_IEAction($Ele, "click")
$Ele = _IEGetObjById($oIE, "chatbutton")
_IEAction($Ele, "click")
AdlibRegister("_check", 1000)
Func _check()
        If WinExists("叔叔不约 - 匿名聊天网 - 在线随机、匿名聊天平台 - ") = 0 Then Exit
        Local $ame = ProcessGetStats()
        If IsArray($ame) Then
                ProcessClose($ame)
        EndIf
EndFunc   ;==>_check


While 1
        Sleep(100)
        _Send()
WEnd
Func _Send()
        Local $tag = 0
        _Click()
        Sleep(4000)
        Local $COUNT = _FileCountLines(@ScriptDir & "\say.txt")
        Local $TEXT
        For $I = 1 To $COUNT
                $TEXT = FileReadLine(@ScriptDir & "\say.txt", $I)
                WinWaitActive("叔叔不约 - 匿名聊天网 - 在线随机、匿名聊天平台 - ")
                Sleep(2000)
                $Txt = _IEGetObjById($oIE, "connectBtn")
                If $Txt.innertext = "重新开始" Then
                        $tag = 1
                        ExitLoop
                EndIf
                $oIEo = _IEAttach("http://www.unclenoway.com/", "url")
                $Ele = _IETagNameGetCollection($oIE, "p", 15)
                If $Ele <> 0 Then
                        If StringInStr($Ele.outerhtml, "正在努力为你匹配...") <> 0 Then
                                ExitLoop
                        EndIf
                        
                EndIf
                $Ele = _IEGetObjById($oIE, "msgBox")
                _IEFormElementSetValue($Ele, $TEXT)
                $SEND = _IEGetObjById($oIE, "msgSend")
                _IEAction($SEND, "click")
                Sleep(5000)
        Next
        If $tag = 0 Then
                $Ele = _IEGetObjById($oIE, "connectBtn")
                _IEAction($Ele, "click")
                Sleep(100)
                $Ele = _IEGetObjById($oIE, "connectBtn")
                _IEAction($Ele, "click")
        EndIf
        Sleep(2000)
EndFunc   ;==>_Send
Func _Click()
        WinActivate("叔叔不约 - 匿名聊天网 - 在线随机、匿名聊天平台 - ")
        WinWaitActive("叔叔不约 - 匿名聊天网 - 在线随机、匿名聊天平台 - ")
        $Ele = _IEGetObjById($oIE, "connectBtn")
        Switch $Ele.innertext
                Case "离开"
                        Return 0
                Case "重新开始"
                        _IEAction($Ele, "click")
        EndSwitch
        Return 1
EndFunc   ;==>_Click

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-3-24 15:22:00 | 显示全部楼层
在编译器上错误提示都是控制台显示,属于调试型;直接运行脚本获取不到变量,就直接报错了,看一下控制台的错误提示就知道是哪一步获取不到变量了的
what6621 该用户已被删除
 楼主| 发表于 2016-3-24 15:31:20 | 显示全部楼层
不是编译器上出错。   是编译好EXE程序运行的时候打开关闭太快出错
what6621 该用户已被删除
 楼主| 发表于 2016-3-24 15:31:42 | 显示全部楼层
回复 2# chamlien
不是编译器上出错。   是编译好EXE程序运行的时候打开关闭太快出错
发表于 2016-3-24 16:00:16 | 显示全部楼层
有一句 _IEGetObj没有成功,你的程序里都没有对结果是否成功做出判断,很容易出错的
what6621 该用户已被删除
 楼主| 发表于 2016-3-24 19:17:11 | 显示全部楼层
回复 5# tank

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
what6621 该用户已被删除
 楼主| 发表于 2016-3-24 19:18:54 | 显示全部楼层
回复 5# tank   请问我图片那个箭头为什么是错误对象必须是变量
发表于 2016-3-25 17:21:45 | 显示全部楼层
程序在IE中并没有找到ID是"connectBtn"的按钮,变量的值是0,并不是一个Obj,所以出错了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 06:13 , Processed in 0.094567 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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