请问编译后。脚本提示(对变量类型必须为对象类型) 错误提示
脚本打开 在关闭 就报错。 这里的打开关闭是指 (打开脚本即可关闭) 可以运行就是 一直提示错误。在编译器里面按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
在编译器上错误提示都是控制台显示,属于调试型;直接运行脚本获取不到变量,就直接报错了,看一下控制台的错误提示就知道是哪一步获取不到变量了的 不是编译器上出错。 是编译好EXE程序运行的时候打开关闭太快出错 回复 2# chamlien
不是编译器上出错。 是编译好EXE程序运行的时候打开关闭太快出错 有一句 _IEGetObj没有成功,你的程序里都没有对结果是否成功做出判断,很容易出错的 回复 5# tank 回复 5# tank 请问我图片那个箭头为什么是错误对象必须是变量 程序在IE中并没有找到ID是"connectBtn"的按钮,变量的值是0,并不是一个Obj,所以出错了。
页:
[1]