Исход события

Asked by dima

Здравствуйте уважаемые , помогите пожалуйста разобраться с ситуацией и вообще возможно ли это, пишу скрипт для флешь игры в контакте и столкнулся вот с какой проблемой... задача поиск нужного объекта и ответ на него двумя действиями , там есть такая функция , но мне нужно помимо этого нажимать на обновление телефона в игре, как это реализовать не могу разобраться, выглядит примерно вот так , клик на телефон, поиск картинки в течение 5 секунд, если не нашёл картинку закрывает окно и заново нажимает на телефон , если картинка найдена нажимает на неё, то есть вывод: Можно ли сделать исход двумя результатами и чтобы всё шло не по порядку а заданно , да , нет, или , и , такие команды там есть? Помогите пожалуйста чем сможете

Question information

Language:
Russian Edit question
Status:
Solved
For:
SikuliX Edit question
Assignee:
No assignee Edit question
Solved by:
Eugene S
Solved:
Last query:
Last reply:
Revision history for this message
rss (rssdev10) said :
#1

Можно зарегистрировать обработчик при помощи onAppear для случая появления картинки и прописать там нажатие на неё. Ожидание реализуется через метод observe(5).

http://doc.sikuli.org/region.html#Region.onAppear

Revision history for this message
Best Eugene S (shragovich) said :
#2

Здравствуйте dima,

Так как Sikuli работает на базе Jython, вы можете полностью утилизировать возможности этого языка в целях ваших нужд. То есть вы можете создать логическую цепочку которая приведёт к желаемому результату. Я не уверен что точно понял ваш вопрос. Что значит "клик на телефон"? Имеется ввиду какая-то иконка? Для примера, допущу что это так. Также, каким образом вы закрываете окно? Вы можете использовать что-то подобное:

import time

while True:
    time.sleep(5)
    imageMatch = exists("picture.png", 0)
    if imageMatch:
        imageMatch.click()
    phoneImage.click() #Тут я допускаю что "клик на телефон" это клик на какую то картинку

Надеюсь что ответил на ваш вопрос.

Cheers,
Eugene

Revision history for this message
rss (rssdev10) said :
#3

Eugene, Sikuli работает на базе Java. Поэтому в версии 1.1 интерфейсы в IDE доступны как на Jyton, так и на JRuby (последний - компактнее в использовании).

Вариант с
while True:
    time.sleep(5)
     ...
потенциально медленнее onApper в случае появления картинки, поскольку ожидание безусловно. Полный вариант с событием выглядел бы как

found = false
onAppear( IMG ) do
  click( IMG )
  found = true
end
observe 5

if found ...
else ...

Впрочем, не исключается вариант и с обработкой исключения FindFailed на click(), что позволит избежать проверки if imageMatch.

Revision history for this message
dima (gto19891989) said :
#4

Здравствуйте Евгений, что то наверно делаю не так , то что телефон это картинка вы правы , нажимая на него обновляется список параметров, но чтобы его обновить нужно закрыть окно этого телефона, это если exists не верный , то должна программа закрыть окно и снова нажать на телефон , а если картинку нашёл, должен перейти к imageMatch и щёлкнуть эту картинку
Выглядит вот так :
1 клик на картинку телефона
2 поиск нужного параметра в течение 3-5 секунд
3 если параметр найден , клик на этот параметр
4 если параметр не найдет , закрытие окна телефона и щелчёк по нему снова и так до тех пор пока не найдёт этот параметр,
спасибо вам большое за трату времени, очень признателен и благодарен.

Revision history for this message
Eugene S (shragovich) said :
#5

dima, не очень ясно с чем конкретно вы затрудняетесь? С логикой или не можете найти какой либо объект?

Revision history for this message
dima (gto19891989) said :
#6

Eugene, ошибку выдаёт почему то, если правда щелкает на картинку , а если ложь, ошибка

Revision history for this message
Eugene S (shragovich) said :
#7

Не могли бы вы выложить ваш код?

Revision history for this message
dima (gto19891989) said :
#8

Thanks Eugene S, that solved my question.