Что нового

Возврат в начало цикла при ошибке

Edw1111

Новичок
Сообщения
1
Репутация
0
Добрый день, из кусков разных скриптов я собрал скрипт который в принципе делает то, что мне нужно, но в нем есть одна проблемка. Иногда скрипт не кликает по нужному мне месту и за того, что браузер не прогружает страницу.И получается что скрипт как бы выполнился, но задачу не выполнил. Мне нужно чтобы скрипт в случае несовпадения цвета в конце, возвращался в начало скрипта с теми же вводимыми данными (они берутся из текстового файла). Сразу извиняюсь за возможный идиотизм в коде :smile:
Код:
#include <AutoItConstants.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
   Local $hFile, $sEMail
$hFile = FileOpen(@ScriptDir & '\golos.txt')
while 1

while 1
   Sleep(35000)                             ; Сюда должен вернутся скрипт в случае несовпадения.
$var = PixelGetColor(832, 138)
 $cvet =0x292929
if $var =$cvet Then


MouseClick('Left', 999, 53)
sleep(1000)
MouseClick('Left', 833, 466)
Sleep(1000)
Send("Войдите")
sleep(3000)
$Pos = PixelSearch(15, 7, 1020, 977, 0x38D878)
if IsArray($Pos) Then MouseClick("left", ($Pos[0]+20), ($Pos[1]+10))

Sleep (15000)



    MouseClick('Left',476,634)
	Sleep(1000)





    $sEMail = FileReadLine($hFile)          ;  $sEMail должен остаться тем же, в случае несовпадения, если совпадает то скрипт берет следующий sEMail.
If @error Then $hFile = FileOpen(@ScriptDir & '\golos.txt')

   Send ($sEMail)
	Sleep(1000)
	MouseClick('Left',473,697)
	Sleep(1000)
	Send ($sEMail)
	Sleep(1000)
	MouseClick('Left',400,746)
	Sleep(5000)
	MouseClick('Left', 999, 53)
sleep(1000)
MouseClick('Left', 833, 466)
Sleep(2000)
Send("кнопку")
Sleep(4000)
Local $aCoord = PixelSearch(15, 7, 1020, 977, 0x38D878)
If Not @error Then
    MouseClickDrag($MOUSE_CLICK_LEFT, $aCoord[0], $aCoord[1], ($aCoord[0]+500), $aCoord[1])
EndIf
	Sleep(3500)
	MouseClick('Left', 999, 53)
sleep(1000)
MouseClick('Left', 833, 466)
Sleep(1000)
Send("Пример")
sleep(2000)
$Pos1 = PixelSearch(15, 7, 1020, 977, 0xBD362F)
if IsArray($Pos1) Then MouseClick("left", ($Pos1[0]), ($Pos1[1]))
Sleep(15000)
$var1 = PixelGetColor(797, 200)
 $cvet2 =0xD9EDF7
if $var1 <> $cvet2 Then  ; На этом моменте мне нужно проверить совпадение цвета, если цвет не совпадает, то скрипт должен вернутся к 10 строке. При этом вернутся он должен с той же переменной $sMail и попробовать ввести их снова.
MouseClick('Left',33,51)
Sleep(1000)
MouseClick('Left',91,86)
ExitLoop


Endif
MouseClick('Left',33,51)
Sleep(1000)
MouseClick('Left',91,86)
WEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Wend
 

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
23
Код:
If $var1 = $cvet2 Then ; если цвет совпадает то происходит выход из цикла, если нет то сначала 
				MouseClick('Left', 33, 51)
				Sleep(1000)
				MouseClick('Left', 91, 86)
				ExitLoop
			EndIf
; ниже строчки не нужны.
	;		MouseClick('Left', 33, 51)
	;		Sleep(1000)
	;		MouseClick('Left', 91, 86)
 
Верх