我在AutoIT中创建了一个简单的脚本来检查字符串是否存在,如果存在则会显示标签,否则它将显示另一个标签:脚本:
$text = $oHTTP.ResponseText
$status = $oHTTP.Status
If $status = 200 Then
$array = _StringBetween($text, '<span class="d1">', "</span>")
If $array[0] == "" Then
GUICtrlSetState($v2l1, $GUI_SHOW)
ELSE
GUICtrlSetState($v2l2, $GUI_SHOW)
EndIf
Else
ConsoleWrite(@error)
EndIf
如果找到任何东西,那么标签就会出现,但是如果找不到字符串就会给我一个错误并退出:
Subscript used on non-accessible variable.:
If $array[0] == "" Then
If $array^ ERROR
无论如何,我能解决这个问题吗?我的意思是如果$ array没有找到它使$ v2l2可见的字符串。
先谢谢。
答案 0 :(得分:4)
您应该使用IsArray来测试您是否收到了有效的数组。每当调用返回数组的函数时,建议执行此过程。
If $status = 200 Then
$array = _StringBetween($text, '<span class="d1">', "</span>")
If IsArray($array) Then
; process the array
Else
; handle the error
EndIf
EndIf
答案 1 :(得分:1)
使用_StringBetween()设置的@error,这是正确的AutoIt编码。
If $status = 200 Then
$array = _StringBetween($text, '<span class="d1">', "</span>")
If Not @error Then
; process the array
Else
; Handle the error
EndIf
EndIf