Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Помощь по Javascript. Клик "отправить" после распознавания капчи. (https://javascript.ru/forum/css-html/75915-pomoshh-po-javascript-klik-otpravit-posle-raspoznavaniya-kapchi.html)

divinat 16.11.2018 14:18

Помощь по Javascript. Клик "отправить" после распознавания капчи.
 
Добрый день.
Задача такая: Есть плагин, который запускает окно Хрома. Дальше в сценарии плагина я прописал команду, которая запускает скрипт antigate. До этого момента все работает нормально: загружается страница, запускается распознавание капчи. но мне нужно еще чтобы после того, как капча распознана, автоматически нажималась кнопка отправить.
На сколько я понимаю, нужна всего одна строчка кода.
Я не программист, и даже этот сценарий с трудом написал. Так что не кидайте тапками.
Заранее благодарю,

SuperZen 16.11.2018 14:29

document.getElementById("айди_кнопки").click()

divinat 16.11.2018 16:20

Спасибо за быстрый ответ.
Еще момент. Важно, чтобы кнопка нажималась только после того как капча распознана. Сама кнопка существует с самого начала.
Это в процессе распознавания:

https://drive.google.com/file/d/1qpu...ew?usp=sharing

А это, когда распознана:
https://drive.google.com/file/d/1EJG...ew?usp=sharing

SuperZen 16.11.2018 16:50

setInterval(function() {
 var solved = document.querySelector('div.antigate_solver.solved')
 if (solved) {
   document.getElementById("айди_кнопки").click()
 }
}, 500) //проверяем раз в 0.5s

j0hnik 16.11.2018 17:00

https://developer.mozilla.org/ru/doc...tationObserver
вот это еще можно использовать для наблюдения

divinat 16.11.2018 23:41

Спасибо, Вы очень помогли.
Хотя, в этом виде скрипт почему-то не работал.

В итоге получилось как-то так:

setInterval (function() {
var element=document.querySelector('#captcha-container > form > div > div > div.antigate_solver.process');
if (!element) {document.querySelector('#captcha-container > form > button > span').click();
}
}, 500);

Оно работает.
Еще раз спасибо.

divinat 16.11.2018 23:48

Правда появилась новая проблема:
Как я уже говорил, этот скрипт внутри сценария. А сценарий запускает скрипт, но не дожидается его окончания.
Команд в этом плагине, как я понимаю, мало.
Единственная, которая относительно подходит:
waitElementLoaded — ожидание загрузки вебэлемента страницы, xpath-адрес которого указан в параметре xpath команды. Максимальное время ожидания загрузки вебэлемента (в секундах) указывается в параметре seconds команды;

Для этого нужно, чтобы по окончании скрипта, т.к. когда происходит нажатие на кнопку "Отправить" скрипт создавал новый элемент с новым xpath, которого будет дожидаться команда.

Других вариантов пока не вижу.

А создать элемент у меня не получается.


Часовой пояс GMT +3, время: 12:07.