Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: N-Ban on September 04, 2014, 10:39:09 AM
-
Странное поведение скрипта порой он отрабатывается верно но периодически может просто завершиться. Переменная $err каким то чудом достигает значения больше 3 хотя должна ловиться циклом. Может есть какие то исключения?
Скрипт в яндексе набирает запрос делает скрин и ищет на нем фавикон саита если не находит двигает на экран ниже и еше раз делает скрин и ищет и еше раз так три раза за это отвечает $err. Если за три движения в низ не находиться он ищет кнопку далее также по скрину. И все по новой. Фавикон и кнопку он находит проверял в отдельном скрипте
#name "search in Yandex"
$zapros = "obzor"
$page_all = 50
$brawser = "chrome.exe"
SUB(find)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#f)
WAITMS (50)
KEYUP (#f)
KEYUP (#CTRL)
WAITMS(500)
KEYSTRING ("obzor")
END_SUB
//==============================================================================
LOGCLEAR
EXECUTE("chrome", "--incognito")
WAIT(3)
KEYSTRING ("ya.ru")
KEYPRESS (#ENTER)
WAIT(5)
KEYSTRING ("bzors")
KEYPRESS (#ENTER)
WAIT(5)
FOR($page=0, $page<$page_all)
$_return1 = 0
$_return2 = 0
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax, $_ymax,"somefile.bmp")
LOGWRITE ("NormalScren")
END_IF
WAIT(1)
LOGWRITE ($_return1)
LOGWRITE ($_return2)
if ($_return1 > 0)
lclick($_return1 + 30, $_return2 + 35)
HALT
else
KEYPRESS (#PAGEDOWN)
end_if
if ($err = 3)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax, $_ymax,"next.bmp") END_IF
LOGWRITE ("nextScreen")
LOGWRITE ($_return1)
LOGWRITE ($_return2)
lclick($_return1 + 5, $_return2 + 5)
WAIT(1)
$err = 0
END_IF
$err = $err + 1
LOGWRITE ($err)
END_CYC
HALT
-
В редакторе Кликермана, вверху, есть такая удобная волшебная палочка "Расставить отступы" --> (http://s1.hostingkartinok.com/uploads/images/2014/09/64a51a828cceb604a21c76908c7fd15d.png) (http://hostingkartinok.com/show-image.php?id=64a51a828cceb604a21c76908c7fd15d), ее использование повышает читаемость скрипта и помогает увидеть ошибки.
(http://s1.hostingkartinok.com/uploads/images/2014/09/4f83be260541f524d32db36050abb0b6.png) (http://hostingkartinok.com/show-image.php?id=4f83be260541f524d32db36050abb0b6)
-
Этого нельзя делать, системные переменные служат только для вывода значений из функций, их нельзя удалить, а попытка записи в них приведет к созданию НЕ системной переменной с таким же названием и потом значение никогда не изменится.
$_return1 = 0
$_return2 = 0
Вот верный код, только нет вызова подпрограммы find
#name "search in Yandex"
$zapros = "obzor"
$page_all = 50
$brawser = "chrome.exe"
SUB(find)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#f)
WAITMS (50)
KEYUP (#f)
KEYUP (#CTRL)
WAITMS(500)
KEYSTRING ("obzor")
END_SUB
//==============================================================================
LOGCLEAR
EXECUTE("chrome", "--incognito")
WAIT(3)
KEYSTRING ("ya.ru")
KEYPRESS (#ENTER)
WAIT(5)
KEYSTRING ("bzors")
WAITMS(50)
KEYPRESS (#ENTER)
WAIT(5)
FOR($page=0, $page<$page_all)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax, $_ymax,"somefile.bmp")
LOGWRITE ("NormalScren: ", $_return1, " ", $_return2)
lclick($_return1 + 30, $_return2 + 35)
HALT
else
KEYPRESS (#PAGEDOWN)
END_IF
WAIT(1)
if ($err = 3)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax, $_ymax,"next.bmp")
LOGWRITE ("nextScreen: ", $_return1, " ", $_return2)
lclick($_return1 + 5, $_return2 + 5)
WAIT(1)
$err = 0
END_IF
INC($err,1)
LOGWRITE ($err)
END_IF
END_CYC
HALT
-
Што то пошло не так
Такое чувство что он игнорирует некоторые команды сеичас он не входит в второй if и не считает переменую $err на скрине я уже изменил код но с оригинальным тоже самое и нет вывода в лог
(http://s58.radikal.ru/i160/1409/64/17817b364b92.png)
-
А как он в него войдет если if ($err = 3) а до того нигде этой $err нет?
-
Есть вот такая конструкция на скрине видно или она здесь не работает?
$err= $err+1
И странно почему не выводит в логах?
-
Есть вот такая конструкция на скрине видно или она здесь не работает?
$err= $err+1
И странно почему не выводит в логах?
Сундук заперт а ключ лежит в нутри...
-
Хорошая аналогия)
понял в чем дело
теперь проблема вот с этим куском отдельно он отрабатывается а в скрипте нет хотя переход на него осуществляется.
А да и чо с логами то?
if ($err = 3)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax, $_ymax,"next.bmp")
LOGWRITE ("nextScreen: ", $_return1, " ", $_return2)
lclick($_return1 + 5, $_return2 + 5)
WAIT(1)
$err = 0
END_IF
Весь код
#name "search in Yandex"
$zapros = "obzor"
$page_all = 50
$brawser = "chrome.exe"
SUB(find)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#f)
WAITMS (50)
KEYUP (#f)
KEYUP (#CTRL)
WAITMS(500)
KEYSTRING ("obzor")
END_SUB
//==============================================================================
LOGCLEAR
EXECUTE("chrome", "--incognito")
WAIT(10)
KEYSTRING ("ya.ru")
KEYPRESS (#ENTER)
WAIT(5)
KEYSTRING ("bzors")
WAITMS(50)
KEYPRESS (#ENTER)
WAIT(5)
FOR($page=0, $page<$page_all)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax, $_ymax,"somefile.bmp")
LOGWRITE ("NormalScren: ", $_return1, " ", $_return2)
lclick($_return1 + 30, $_return2 + 35)
HALT
else
KEYPRESS (#PAGEDOWN)
END_IF
WAIT(1)
if ($err = 3)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax, $_ymax,"next.bmp")
LOGWRITE ("nextScreen: ", $_return1, " ", $_return2)
lclick($_return1 + 5, $_return2 + 5)
WAIT(1)
$err = 0
END_IF
LOGWRITE ($err)
END_IF
$err=$err+1
END_CYC
HALT
-
думаю проблема в этом:
KEYSTRING ("bzors")
и еще err = 3 никогда не будет
-
Я заметил ошибку по поводу $err и вынес за if ее
а в чем в кеустринге проблема?