Кликабельная капча



  • @venom777 А как по коду base64 узнать, что изображено, и совпадает ли нарисованная цифра с ответом капчи?



  • @MAKAR @denanotherday по идее так:
    Узнать base64 для каждой цифры блока (скорее всего от нуля до девятки)

    цифра 0 | base64_code_block0
    цифра 1 | base64_code_block1
    цифра 2 | base64_code_block2
    цифра 3 | base64_code_block3
    цифра 4 | base64_code_block4
    цифра 5 | base64_code_block5
    цифра 6 | base64_code_block6
    цифра 7 | base64_code_block7
    цифра 8 | base64_code_block8
    цифра 9 | base64_code_block9

    Вот типа таких данных должны быть готовые в басе, что бы знали base64 для каждого блока с циферкой

    • Далее приходит ответ от сервиса, например число 5
    • Тогда мы идем и получаем из уже сохраненной выше таблички base64 (по факту у нас будут переменные) код для цифры 5.
    • Теперь на сайте каждый вариант ответа перевести в base64 и как-то записать что чему соответствует. Например воспользоваться последовательностью, записываем в переменные L1 L2 L3 L4 коды base64 соответствующих элементов.
      0_1492633552446_upload-d56974fb-ace5-431b-a1cf-19383797a8ce
    • сравниваем, мы уже знаем что "5" равен [[base64_code_block5]] значит сравниваем [[base64_code_block5]] с каждой переменной [[L1]] [[L2]] [[L3]] [[L4]]
      это я бы сделал в "Выполнить код" вот так
    [[CLICK1]] = false; [[CLICK2]] = false; [[CLICK3]] = false; [[CLICK4]] = false;
    
    if ([[captcha_result]] == "5") 
    {
    if ([[base64_code_block5]] == [[L1]]) { [[CLICK1]] = true; }
    if ([[base64_code_block5]] == [[L2]]) { [[CLICK2]] = true; }
    if ([[base64_code_block5]] == [[L3]]) { [[CLICK3]] = true; }
    if ([[base64_code_block5]] == [[L4]]) { [[CLICK4]] = true; }
    };
    if ([[captcha_result]] == "6") 
    { 
    ...
    };
    

    ЗЫ т.к. софт не будет знать что нужно сравнивать именно base64_code_block5 то нужно делать дополнительный if перед выполнить блок ( если "5" выполнять след код, если "6" то выполнять след код).

    • Одна из переменных будет true
    • Теперь создать 4 экшена проверки
    if [[CLICK1]] 
    то двигать мышь и кликнуть >CSS> block >AT> 0
    if [[CLICK2]] 
    то двигать мышь и кликнуть >CSS> block >AT> 1
    if [[CLICK3]] 
    то двигать мышь и кликнуть >CSS> block >AT> 2
    if [[CLICK4]] 
    то двигать мышь и кликнуть >CSS> block >AT> 3
    

    Сам не проверял но должно работать, возможно это костыль и можно сделать лучше)



  • @venom777 При ручном вводе >CSS> :nth-child([[CAPTCHA_RESULT]]) > a > img
    Как прописать +1 в селекторе спасибо.



  • @denanotherday возможно потому что в [[CAPTCHA_RESULT]] тип данных не int а string (строка а не цифренный)
    выполнить код нужно что бы преобразовать в int

    [[CAPTCHA_RESULT]] = parseInt([[CAPTCHA_RESULT]])
    


  • @venom777 Спасибо работает. Я не ту переменную прописал. Подскажите как в селектор добавить +1



  • @denanotherday
    номер селектора на странице?

    >CSS> :nth-child([[CAPTCHA_RESULT]]) > a > img >AT> 0 это будет первый элемент
    >CSS> :nth-child([[CAPTCHA_RESULT]]) > a > img >AT> 1 это второй
    >CSS> :nth-child([[CAPTCHA_RESULT]]) > a > img >AT> 2 это третий
    


  • @venom777 1 это 2, 2 это 3 и тд.



  • @denanotherday да индекс с 0 начинается



  • @venom777 Спасибо


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.