Author Topic: SCANPICTURE - клик по картинке с условиями  (Read 2131 times)

0 Members and 1 Guest are viewing this topic.

dumbuser2000

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Здравствуйте!

Помогите пожалуйста доработать скрипт, который кликает по очереди на все картинки BBB.bmp в браузере в заданной области экрана:

Code: [Select]
GETSCREEN
      COLORMODE(7)
      SCANPICTURE($ARR_SCAN, 0,0, 3180,$_ymax, "BBB.bmp", -1, 80)
      $ARR_NUM = 0
      WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
         $X = $ARR_SCAN [$ARR_NUM]
         INC($ARR_NUM,1)
         $Y = $ARR_SCAN [$ARR_NUM]
         INC($ARR_NUM,1)
         LCLICK(($X+15), $Y)   // клик по BBB
         WAITMS(1)
      END_CYC
      UNDEFINE($ARR_SCAN)

Условие:
  • в браузере появляется таблица, в столбцах таблицы (кроме всего прочего) есть картинки BBB и GGG
      вид таблицы: https://disk.yandex.ru/i/INBoKJqAUyRrag
  • наличие и кол-во картинок GGG и BBB меняется при перезагрузке страницы
  • количестве срок в таблице меняется при перезагрузке
  • при LCLICK  на картинку BBB – она исчезает.
  • картинки BBB как и GGG не всегда присутствуют в строке.
  • картинки BBB и GGG имеют одинаковый размер, и в строке их координата Y - совпадает
  • картинки BBB и GGG в строке расположены на расстоянии примерно 2000px друг от друга по оси X

Задача: Необходимо сделать очень быстро LCLICK на картинки BBB в столбце «2», при условии, что в этой же строке в столбце «1» нет картинки GGG.
если смотреть на пример таблицы, то конкретно в ней нужно кликнуть по BBB в строках №№ 2,4,6,8,10.

p/s после того, как все нужные BBB "прокликаны", в ручную делается перезагрузка страницы, и таблица меняется и снова нужно прокликать по BBB и т.д.

вид таблицы: https://disk.yandex.ru/i/INBoKJqAUyRrag

dumbuser2000

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: SCANPICTURE - клик по картинке с условиями
« Reply #1 on: November 01, 2022, 05:19:45 PM »
сам додумался :), может кому пригодится:
Code: [Select]
GETSCREEN
      COLORMODE(7)
      SCANPICTURE($ARR_SCAN, 3000,0, 3180,$_ymax, "BBB.bmp", -1, 80)
     
      $ARR_NUM = 0
      WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
         $X = $ARR_SCAN [$ARR_NUM]
         INC($ARR_NUM,1)
         $Y = $ARR_SCAN [$ARR_NUM]
         INC($ARR_NUM,1)
                     
            IF_PICTURE_IN (1300,$y, 1550,$y+30, "GGG.bmp", 0, 80)  //ищем GGG левее BBB
    ELSE   
            LCLICK(($X+15), $Y)   // клик по BBB
            END_IF

         WAITMS(1)
      END_CYC
      UNDEFINE($ARR_SCAN)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: SCANPICTURE - клик по картинке с условиями
« Reply #2 on: November 01, 2022, 05:22:12 PM »
Code: (clickermann) [Select]
GETSCREEN
SCANPICTURE($scan, 0,0, 3180,$_ymax, "BBB.bmp", -1, 80)

$scan_size = ARRSIZE($scan)
FOR($i=0, $i < $scan_size, 2)
    $bbbX = $scan[$i]
    $bbbY = $scan[$i+1]

    IF_PICTURE_IN($bbbX-2000,$bbbY-3, $bbbX-1900,$bbbY+15, "GGG.bmp", -1,100)
    ELSE
        LCLICK($bbbX+3, $bbbY+3)
        WAITMS(50)
    END_IF
   
END_CYC
UNDEFINE($scan)

HALT

Тщательно настроить поиск GGG. Должно, если есть, всегда находить при заданном колормоде и проценте.

Задача: Необходимо сделать очень быстро LCLICK

Чтобы было быстрее, нужно точней задать область поиска для BBB и GGG. Вторым, по X, можно относительные, как в примере, можно абсолютные.

p/s после того, как все нужные BBB "прокликаны", в ручную делается перезагрузка страницы, и таблица меняется и снова нужно прокликать по BBB и т.д.
Без понятия, зачем здесь вручную перезагрузка страницы, но если так нужно, то непонятно что делать коду, ну в ручную и вручную.
« Last Edit: November 01, 2022, 05:29:36 PM by Vint »