Author Topic: Clickermann для выполнения теста  (Read 5858 times)

0 Members and 1 Guest are viewing this topic.

2rock

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Clickermann для выполнения теста
« on: November 08, 2013, 05:29:12 PM »
Доброго времени суток, форумчане.
Хочу написать скрипт на выполнение теста. Тест состоит из картинок, с двумя вариантами ответа (для наглядности прикрепляю картинку) и имеет около 50 вариантов вопроса. Тест занимает центральную часть экрана, где-то 800х400 пикселей.
Как я понял, из всего прочитанного у вас на форуме, мне нужно отскринить все меняющиеся изображения теста. Вырезать из каждого изображения уникальный кусочек до 40х40 пикселей (больше, как я понял, затормозит процесс поиска). И написать скрипт, где будет указанно что если нашлась картинка1, то жмахать мышкой по координате (х1, у1), потом задержка в 1 секунду, и снова поиск изображения. Если нашлась картинка5, то жмахать по координате (х2, у2). И надо как то сгруппировать все эти картинки в 2 группы, что б было, если картинка из 1-ой группы - то клик по х1,у1, если из второй - клик х2, у2.
Если не трудно , помогите пожалуйста, киньте пример скрипта) буду очень признателен

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann для выполнения теста
« Reply #1 on: November 08, 2013, 06:59:46 PM »
Вот составил для тебя скрипт.

Картинки надо подготовить в таком виде
Для ответов "Да" или +
Yes_1.bmp
Yes_2.bmp
...
Yes_10.bmp
Yes_11.bmp

Для ответов "Нет" или -
No_1.bmp
No_2.bmp
No_3.bmp
No_4.bmp

Также в скрипте нужно указать область поиска и количество картинок Да и Нет, и указать координату кнопок LCLICK(100, 100) // Клик по "Да" и для Нет тоже.

Code: (clickermann) [Select]
// Область поиска
$x1 = 500
$y1 = 500
$x2 = 600
$y2 = 600

// Количество картинок "Да"
$col_yes = 10
// Количество картинок "Нет"
$col_no = 10

// Вадиант "ДА"
$check = 0
$num = 1
GETSCREEN
WHILE(($check = 0) & ($num < $col_yes+1))
   IF_PICTURE_IN ($x1,$y1, $x2,$y2, STRCONCAT("Yes_", $num, ".bmp"))
      $check = 1
      LCLICK(100, 100) // Клик по "Да"
      WAIT(1)
   Else
      INC($num,1)
   END_IF
END_CYC

// Вадиант "Нет"
$num = 1
WHILE(($check = 0) & ($num < $col_no+1))
   IF_PICTURE_IN ($x1,$y1, $x2,$y2, STRCONCAT("No_", $num, ".bmp"))
      $check = 1
      LCLICK(200, 100) // Клик по "Нет"
      WAIT(1)
   Else
      INC($num,1)
   END_IF
END_CYC
« Last Edit: November 08, 2013, 07:03:15 PM by Oraven »

2rock

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Clickermann для выполнения теста
« Reply #2 on: November 08, 2013, 08:30:01 PM »
Спасибо большое, сейчас опробуем...
А можно задать, что б если не нашел совпадающих картинок, он рандомно бы кликнул на "да" или "нет" ?
« Last Edit: November 08, 2013, 11:30:03 PM by 2rock »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann для выполнения теста
« Reply #3 on: November 08, 2013, 10:36:48 PM »
Конечно

Code: (clickermann) [Select]
// Область поиска
$x1 = 500
$y1 = 500
$x2 = 600
$y2 = 600

// Количество картинок "Да"
$col_yes = 10
// Количество картинок "Нет"
$col_no = 10

// Вадиант "ДА"
$check = 0
$num = 1
GETSCREEN
WHILE(($check = 0) & ($num < $col_yes+1))
   IF_PICTURE_IN ($x1,$y1, $x2,$y2, STRCONCAT("Yes_", $num, ".bmp"))
      $check = 1
      LCLICK(100, 100) // Клик по "Да"
      WAIT(1)
   Else
      INC($num,1)
   END_IF
END_CYC

// Вадиант "Нет"
$num = 1
WHILE(($check = 0) & ($num < $col_no+1))
   IF_PICTURE_IN ($x1,$y1, $x2,$y2, STRCONCAT("No_", $num, ".bmp"))
      $check = 1
      LCLICK(200, 100) // Клик по "Нет"
      WAIT(1)
   Else
      INC($num,1)
   END_IF
END_CYC

// Если отсутствуют совпадение, то выбераем случайный вариант
IF($check = 0)
   LCLICK(RNDFROM(100,200), 100) // Клик если ненашел по "Да" или "Нет"
   WAIT(1)
END_IF

В RNDFROM(100,200) нужно вписать две X координаты левой и правой кнопки. Эти два числа будут случайно выбираться при клике
« Last Edit: November 08, 2013, 10:39:08 PM by Oraven »

2rock

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Clickermann для выполнения теста
« Reply #4 on: November 08, 2013, 11:36:13 PM »
спасибо большущее, работает! :D
Даже зациклить вышло, на выполнение 10 вопросов. А потом заново запускать тест и бесконечно проходить его)