Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Ellen on March 17, 2022, 12:17:13 PM

Title: помогите прочитать текст из файла
Post by: Ellen on March 17, 2022, 12:17:13 PM
Здравствуйте! Такая задача: написал шаблон скрипта, нужно чтобы из текстовых файлов он читал первую строчку - вставлял. Потом как весь скрипт отработал и пошел на 2 круг читать уже надо 2-3-4-5 строчку и т.д. Текст в текстовом файле на русском
И ещё в одном моменте нужно заполнить 2 чекбокса, известны координаты ЛКЛИК нужно нажать в 2 рандомных.
Читал инструкцию к командам, немного не получается, тут думаю быстрее будет


UPD: текст из блокнота копируется кракозябрами, как исправить?
Code: (clickermann) [Select]
WAITMS(300)   //
LCLICK(693,507) //  мышь на поле ФИО
 // тут нужно чтение из файла номер 1 txt или xsl
 // в файле записаны ФИО на строчку, нужно ччтобы было чтение строки и вставка
WAITMS(500)
LCLICK(808,562) // кнопка далее
WAITMS(500)
LCLICK(516,504) // мышка галочка на чекбокс
WAITMS(500)
LCLICK(827,550) // далее
WAITMS(500)
LCLICK(521,509)// чекбокс галочка
WAITMS(500)
LCLICK(827,550) // далее
WAITMS(500)
LCLICK(607,457) // мышь в поле ввода
WAITMS(500)
// чтение из файла номер 2
// в файле записаны слова на строчку, нужно ччтобы было чтение строки и вставка
LCLICK(852,644)
WAITMS(500)
// вот тут надо выбирать 2 рандомных чекбокса по ЛКЛИК 510 439  и 509 493 и 504 547 и 508 627
LCLICK(850,709)
WAITMS(500)
LCLICK(853,599)
WAITMS(500)
LCLICK(831,660)
WAITMS(500)
 //  // вот тут надо  выбирать 2 рандомных чекбокса по ЛКЛИК 510 439  и 509 493 и 504 547 и 508 627
 
WAITMS(500)
LCLICK(848,617)
WAITMS(500)
LCLICK(606,459)//поле ввода

// чтение из файла номер 3
// в файле записаны слова на строчку, нужно ччтобы было чтение строки и вставка

WAITMS(500)
LCLICK(842,659) // далее
WAITMS(500)

// чтение из файла номер 4
// в файле записаны слова на строчку, нужно ччтобы было чтение строки и вставка

LCLICK(840,653)    // далее
WAITMS(500)
LCLICK(842,657) // далее
WAITMS(500)
LCLICK(733,507) // поле ввода номера


// чтение из файла номер 5
// в файле записаны слова на строчку, нужно ччтобы было чтение строки и вставка

LCLICK(859,585)       // конец













Title: Re: помогите прочитать текст из файла
Post by: Hito on March 17, 2022, 02:30:10 PM
Во первых... Прежде, чем производить какие-либо действия, кликеру лучше "убедиться", что открыта нужная страница в браузере. По каким параметрам он это будет делать - тебе видней. Из нас никто эту страницу не видит.
Во вторых... Что конкретно непонятно из этой справки?

(https://sun9-62.userapi.com/impf/XDo0hbMXvlg7vQ6XVp8S_vFqsU9Xi1VNJfrWUg/XcZdN2vlp4s.jpg?size=815x560&quality=95&sign=621c0079597c655ec84b4f31cbb410a9&type=album)
Title: Re: помогите прочитать текст из файла
Post by: Ellen on March 17, 2022, 02:34:17 PM
Вопрос вставки текста из файла вроде бы решен.
Не могу сделать:
Известны координаты ЛКЛИК к прмиеру 5 штук, из этих 5 надо рандомно выбрать 2, вот на этом застрял
Title: Re: помогите прочитать текст из файла
Post by: Hito on March 17, 2022, 02:37:53 PM
Ок. Что непонятно здесь?

(https://sun9-24.userapi.com/impf/yQP0n36PcZA7-khZT9f8jgsVRO_2mlewXAv-kQ/c3IED4sFUKs.jpg?size=815x557&quality=95&sign=cb76dfe5026822ef2aa4044057baa0cb&type=album)
Title: Re: помогите прочитать текст из файла
Post by: Ellen on March 17, 2022, 02:44:28 PM
Я написал
RND (LCLICK(808,562) LCLICK(844,562) LCLICK(875,562) LCLICK(885,562) LCLICK(892,562) LCLICK(858,562))
не работает, ну возможно не так написал, да
так же пробовал с RNDFROM
Title: Re: помогите прочитать текст из файла
Post by: Hito on March 17, 2022, 02:44:53 PM
Code: (clickermann) [Select]
FOR($i=0,$i<2)
   $variant[$i] = RND (1, 5)
   
   SWITCH($variant[$i])
      CASE(1)
         LCLICK(10,10) // Здесь координаты первого варианта
      CASE(2)
         LCLICK(10,10) // Здесь координаты второго варианта
      CASE(3)
         LCLICK(10,10) // Здесь координаты третьего варианта
      CASE(4)
         LCLICK(10,10) // Здесь координаты четвертого варианта
      CASE(5)
         LCLICK(10,10) // Здесь координаты пятого варианта
   END_SWITCH
END_CYC

HALT
Title: Re: помогите прочитать текст из файла
Post by: Hito on March 17, 2022, 02:46:32 PM
Стоп... Забыл исключить на втором кругу цикла вариант, который был выбран на прошлом кругу... Сейчас намутим...
Title: Re: помогите прочитать текст из файла
Post by: Ellen on March 17, 2022, 02:51:11 PM
Code: (clickermann) [Select]
FOR($i=0,$i<2)
   $variant[$i] = RND (1, 5)
   
   SWITCH($variant[$i])
      CASE(1)
         LCLICK(10,10) // Здесь координаты первого варианта
      CASE(2)
         LCLICK(10,10) // Здесь координаты второго варианта
      CASE(3)
         LCLICK(10,10) // Здесь координаты третьего варианта
      CASE(4)
         LCLICK(10,10) // Здесь координаты четвертого варианта
      CASE(5)
         LCLICK(10,10) // Здесь координаты пятого варианта
   END_SWITCH
END_CYC

HALT

ну вот оказывается как сложно надо было) я бы не додумался до этого) сейчас попробую
Title: Re: помогите прочитать текст из файла
Post by: Ellen on March 17, 2022, 02:56:59 PM
а есть ещё такой вариант чтобы из файла например читалась и вставлялась не одна строка а три например?

Текст вставки делал по такому принципу
WAIT(2)
INC($num,1) // накручиваем номер строки каждый проход
TOCLIP (TFREAD ("nics.txt", $num)) // копируем строку в буфер
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // Enter
WAITMS (100)
Title: Re: помогите прочитать текст из файла
Post by: Hito on March 17, 2022, 02:59:39 PM
Стоп... Забыл исключить на втором кругу цикла вариант, который был выбран на прошлом кругу... Сейчас намутим...
Сам намутишь ))

а есть ещё такой вариант чтобы из файла например читалась и вставлялась не одна строка а три например?
Code: (clickermann) [Select]
FOR($i=1,$i<4)
   TOCLIP (TFREAD ("nics.txt", $i))
END_CYC
Title: Re: помогите прочитать текст из файла
Post by: Ellen on March 17, 2022, 03:03:55 PM
Стоп... Забыл исключить на втором кругу цикла вариант, который был выбран на прошлом кругу... Сейчас намутим...
Сам намутишь ))

Вот наверное с этим я и столкнулся) на втором круге не работает рандомность) как исправить?
Title: Re: помогите прочитать текст из файла
Post by: Hito on March 17, 2022, 03:08:17 PM
Я бы так сделал бы:

Code: (clickermann) [Select]
GETSCREEN

FOR($i=0,$i<2)
   
   $flag = 1
   
   WHILE($flag)
      $variant[$i] = RND (1, 5)
      SWITCH($variant[$i])
         CASE(1)
            // Здесь координаты первого варианта
            IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
               LCLICK(10,10)
               $flag = 0
            END_IF
         CASE(2)
            // Здесь координаты второго варианта
            IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
               LCLICK(10,10)
               $flag = 0
            END_IF
         CASE(3)
            // Здесь координаты третьего варианта
            IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
               LCLICK(10,10)
               $flag = 0
            END_IF
         CASE(4)
            // Здесь координаты четвертого варианта
            IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
               LCLICK(10,10)
               $flag = 0
            END_IF
         CASE(5)
            // Здесь координаты пятого варианта
            IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
               LCLICK(10,10)
               $flag = 0
            END_IF
      END_SWITCH
   END_CYC
END_CYC

HALT
Title: Re: помогите прочитать текст из файла
Post by: Ellen on March 17, 2022, 03:09:51 PM
Следую пока по первому варианту, если такая возможность уменьшить скорость выставления чекбоксов? не успевает ответ от сервера придти, а если не выбран ни один чек бокс дальше не пускает
Title: Re: помогите прочитать текст из файла
Post by: Ellen on March 17, 2022, 03:10:54 PM
Следую пока по первому варианту, если такая возможность уменьшить скорость выставления чекбоксов? не успевает ответ от сервера придти, а если не выбран ни один чек бокс дальше не пускает

Code: (clickermann) [Select]
LCLICK(852,644)
WAITMS(500)
FOR($i=1,$i<3)
   $variant[$i] = RND (1, 8)
 
   SWITCH($variant[$i])
      CASE(1)
         LCLICK(509,439) // Здесь координаты первого варианта
      CASE(2)
         LCLICK(511,472) // Здесь координаты второго варианта
      CASE(3)
         LCLICK(509,493) // Здесь координаты третьего варианта
      CASE(4)
         LCLICK(507,519) // Здесь координаты четвертого варианта
      CASE(5)
         LCLICK(508,547) // Здесь координаты пятого варианта
      CASE(6)
         LCLICK(506,573) // Здесь координаты третьего варианта
      CASE(7)
         LCLICK(507,598) // Здесь координаты четвертого варианта
      CASE(8)
         LCLICK(510,627) // Здесь координаты пятого варианта
   END_SWITCH
END_CYC
Вот тот цикл выполнять чуть медленнее, перед выбором рандомного чек бокса и клика туда взять паузу к примеру 100мс
Title: Re: помогите прочитать текст из файла
Post by: Ellen on March 17, 2022, 03:13:49 PM
Ошибка такого характера почему то есть http://prntscr.com/g8kBAjHxB7fO что это значит?
Title: Re: помогите прочитать текст из файла
Post by: Hito on March 17, 2022, 03:17:04 PM
Ошибка такого характера почему то есть http://prntscr.com/g8kBAjHxB7fO что это значит?
Потому, что цикл ты сделал от 1 до 3, а не как я дал - от 0 до 2.



Следую пока по первому варианту, если такая возможность уменьшить скорость выставления чекбоксов? не успевает ответ от сервера придти, а если не выбран ни один чек бокс дальше не пускает
Code: (clickermann) [Select]
GETSCREEN

FOR($i=0,$i<2)
   
   $flag = 1
   
   WHILE($flag)
      $variant[$i] = RND (1, 5)
      SWITCH($variant[$i])
         CASE(1)
            // Здесь координаты первого варианта
            IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
               
               LCLICK(10,10)
               
               $time = $_time_t + 2
               WHILE($time > $_time_t)
                  GETSCREEN
                  IF_PICTURE_IN (0,0, 10,10, "чекбокс отмечен.bmp", -1, 100)
                     $time = 0
                     $flag = 0
                  ELSE
                     WAITMS(50)
                  END_IF
               END_CYC
            END_IF
         CASE(2)
            // Здесь координаты второго варианта
            IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
               
               LCLICK(10,10)
               
               $time = $_time_t + 2
               WHILE($time > $_time_t)
                  GETSCREEN
                  IF_PICTURE_IN (0,0, 10,10, "чекбокс отмечен.bmp", -1, 100)
                     $time = 0
                     $flag = 0
                  ELSE
                     WAITMS(50)
                  END_IF
               END_CYC
            END_IF
         CASE(3)
            // Здесь координаты третьего варианта
            IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
               
               LCLICK(10,10)
               
               $time = $_time_t + 2
               WHILE($time > $_time_t)
                  GETSCREEN
                  IF_PICTURE_IN (0,0, 10,10, "чекбокс отмечен.bmp", -1, 100)
                     $time = 0
                     $flag = 0
                  ELSE
                     WAITMS(50)
                  END_IF
               END_CYC
            END_IF
         CASE(4)
            // Здесь координаты четвертого варианта
            IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
               
               LCLICK(10,10)
               
               $time = $_time_t + 2
               WHILE($time > $_time_t)
                  GETSCREEN
                  IF_PICTURE_IN (0,0, 10,10, "чекбокс отмечен.bmp", -1, 100)
                     $time = 0
                     $flag = 0
                  ELSE
                     WAITMS(50)
                  END_IF
               END_CYC
            END_IF
         CASE(5)
            // Здесь координаты пятого варианта
            IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
               
               LCLICK(10,10)
               
               $time = $_time_t + 2
               WHILE($time > $_time_t)
                  GETSCREEN
                  IF_PICTURE_IN (0,0, 10,10, "чекбокс отмечен.bmp", -1, 100)
                     $time = 0
                     $flag = 0
                  ELSE
                     WAITMS(50)
                  END_IF
               END_CYC
            END_IF
      END_SWITCH
   END_CYC
END_CYC

HALT
Title: Re: помогите прочитать текст из файла
Post by: Hito on March 17, 2022, 03:23:14 PM
И это... Я тебе даю сбоеустойчивый вариант. А ты уже делай, как хочешь. Пример в моем варианте виден. Крути его уже под себя сам.
Title: Re: помогите прочитать текст из файла
Post by: Ellen on March 17, 2022, 03:26:39 PM
Ошибка такого характера почему то есть http://prntscr.com/g8kBAjHxB7fO что это значит?

+ как сделать чтобы рандом генератор случайно не выбрал одну и ту же цифру, просто иногда бывает что галочка на чек боксе ставится, потом убирается и из за этого нельзя дальше пройти
Title: Re: помогите прочитать текст из файла
Post by: Hito on March 17, 2022, 03:31:04 PM
просто иногда бывает что галочка на чек боксе ставится, потом убирается
В последнем моем варианте все сделано.

Ошибка такого характера почему то есть http://prntscr.com/g8kBAjHxB7fO что это значит?
Я уже объяснил - читай выше.
Title: Re: помогите прочитать текст из файла
Post by: Oblie1968 on March 20, 2022, 06:17:22 PM
+ как сделать чтобы рандом генератор случайно не выбрал одну и ту же цифру, просто иногда бывает что галочка на чек боксе ставится, потом убирается и из за этого нельзя дальше пройти

У тебя всего ДВА рандомных числа, да выбери ты их сразу.

Code: (clickermann) [Select]
$variant[0] = RND (0, 4)
$variant[1] = RND (0, 3)
if ($variant[1]==$variant[0])
  $variant[1]=4
end_if

Загони координаты клика в массив, чтобы не долбить один и тот же код, как дятел, и не ошибиться.

Code: (clickermann) [Select]
$xclick[0]=509
$yclick[0]=439 // Здесь координаты первого варианта
$xclick[1]=511
$yclick[1]=472 // Здесь координаты второго варианта
// и т.д.

И только потом уже делай свой цикл на два клика, без всяких SWITCH, используя $xclick, $yclick

Code: (clickermann) [Select]
FOR($i=0,$i<2)
   $flag = 1
   $xn=$xclick[$variant[$i]]
   $yn=$yclick[$variant[$i]]
   WHILE($flag)
     GETSCREEN
     IF_PICTURE_IN (0,0, 10,10, "чекбокс не отмечен.bmp", -1, 100)
       LCLICK($xn,$yn)
     ELSE
       $flag = 0
     END_IF
     WAITMS(50)
   END_CYC
END_CYC

Если надо, диапазон проверки картинки тоже к $xn,$yn привяжи, а проще не картинку искать/проверять, а один пиксель, который изменится при успешном клике. По этому пикселю и кликай. Тогда и $flag не нужен будет.

Code: (clickermann) [Select]
FOR($i=0,$i<2)
   $xn=$xclick[$variant[$i]]
   $yn=$yclick[$variant[$i]]
   GETSCREEN
   $cn=PXL($xn,$yn)
   WHILE($cn==PXL($xn,$yn))
     LCLICK($xn,$yn)
     WAITMS(50)
     GETSCREEN
   END_CYC
END_CYC

Я бы ещё WHILE на FOR заменил, во избежание зацикливания.