Author Topic: Не выполняется условие  (Read 2201 times)

0 Members and 1 Guest are viewing this topic.

tonysuicide

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Не выполняется условие
« on: September 12, 2016, 04:06:20 PM »
Добрый день! Всех с днем программиста! Прошу не бросать камнями, а указать на ошибки и методы их устранения. Как никак это мой первый скрипт) В общем ближе к делу. Суть скрипта.

1) Открыть страницу сайта
2)Найти кнопку с заданным в коде изображением, если изображение  есть, кликнуть на него, если нет - закрыть браузер.
3)После клика на изображение открывается новое окно,которое необходимо пролистать в конец , далее снова выполняется поиск заранее заданной картинки. Если картинка найдена, кликнуть на нее, закрыть окно,подождать некоторое время и закрыть браузер. В случае если изображения нет, сразу закрыть браузер.

В моем случае скрип отлично работает лишь тогда, когда условия с поиском изображения выполняются. И скрипт работает верно. Но стоит программе не найти заданную картинку в 1м условии либо во 2м, она вместо закрытия браузера, зацикливается, открывая одно и то же задание, тем самым плодя вкладки в браузере пока не сожрет все ресурсы виртуалки. Собственно сам код. ps в BAT файле выполняется команда taskkill /im. Заранее всем большое спасибо!

Code: [Select]
$check = 0
WHILE($check = 0)
execute ("chrome.exe", "http://bosslike.ru/tasks/instagram/like/")
wait (10)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
$check = 0
LCLICK($_return1, $_return2)
WAIT(15)
ELSE
WAIT(5)
execute ("stop.bat")
END_IF

KEYPRESS(#PAGEDOWN)
wait (1)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100)
LCLICK($_return1, $_return2)
wait (8)
execute ("stop.bat")
wait(10)
execute ("stop.bat")

ELSE
WAIT(5)
execute ("stop.bat")
END_IF
END_CYC
Дорогу осилит идущий.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Не выполняется условие
« Reply #1 on: September 12, 2016, 04:27:18 PM »
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
    execute ("chrome.exe", "http://bosslike.ru/tasks/instagram/like/")
    wait (10)
    GETSCREEN
    IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
        LCLICK($_return1, $_return2)
        WAIT(15)
       
        KEYPRESS(#PAGEDOWN)
        wait (1)
        GETSCREEN
        IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100)
            LCLICK($_return1, $_return2)
            wait(10)
        END_IF
    END_IF
    WAIT(5)
    EXECUTE("taskkill", "/f /im chrome.exe")
END_CYC

Хотя и так должно работать. Вот первый вариант без END_IF  был нерабочий.
« Last Edit: September 12, 2016, 05:22:11 PM by Vint »


tonysuicide

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Не выполняется условие
« Reply #2 on: September 12, 2016, 04:43:05 PM »
Спасибо, что откликнулись. Но на сколько я понимаю ваша версия кода линейная.  В ней нет условия, на случай если искомые изображения не будут найдены. В моем же случае обязательно закрытие браузера, если не найдено изображение.




Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
    execute ("chrome.exe", "http://bosslike.ru/tasks/instagram/like/")
    wait (10)
    GETSCREEN
    IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
        $check = 0
        LCLICK($_return1, $_return2)
        WAIT(15)
       
        KEYPRESS(#PAGEDOWN)
        wait (1)
        GETSCREEN
        IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100)
            LCLICK($_return1, $_return2)
            wait(10)
        END_IF
    END_IF
    WAIT(5)
    EXECUTE("taskkill", "/f /im chrome.exe")
END_CYC

Хотя и так должно работать. Вот первый вариант без END_IF  был нерабочий.
Дорогу осилит идущий.

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Не выполняется условие
« Reply #3 on: September 12, 2016, 05:00:20 PM »
... Если картинка найдена, кликнуть на нее, закрыть окно,подождать некоторое время и закрыть браузер. В случае если изображения нет, сразу закрыть браузер. получается во всех случаях браузер всё равно закрывать!
строки  $check = 0 лишние, они ничего не делают.