@AnotherAnkor

Почему не эмулируется click?

Написал программу для эмуляции действий пользователя. По факту браузер, который записывает действия и может их потом воспроизводить.
Но почему - то у меня не проходит авторизация в hp sv.
Она успешно присваивает значения паролю и логину, но не может нажать на кнопку. Сообщений об ошибках при этом нет.
Также оно успешно ищет котят в яндексе. Но вот выполнить простые действия, как авторизация не может.
Смотреть надо в preload.js В нём есть
ipcRenderer.on('id', (event, value) => {
    do {
        setTimeout(function() {
            console.log('Wait for it...');
        }, 1000);
    } while (!!document.getElementById(value));
    document.getElementById(value).click();
    id = value;});

Что здесь может быть не так?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
@AnotherAnkor Автор вопроса
Если открыть исходники, то можно видеть, что программа возвращает и записывает в сценарий, в некоторых случаях, не id, а xpath. Это ошибка в коде.
Следовательно, в приведённом куске кода ошибок нет. Но они возникают, когда этому методу передаётся не id, а xpath, записанный в сценарий ранее. Соответственно, нужно внести правки и дополнительные проверки в код, для того чтобы программа отрабатывала как задумано - повторяла действия пользователя.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
Как вариант, сравните то, что реальный браузер отсылает на сервер при ручном выполнении действий, и что отсылает на сервер ваша программа.
Затем смотрите, что именно в их поведении отличается.
Если тело запроса такое же и переменные все на месте - то может быть, HTTP-заголовки, а может быть, сервер замеряет время между отправкой формы клиенту и получением данных от него, и отсекает формы, отправленные слишком быстро.
Ответ написан
@Abcdefgk
Метод click() работает на любом элементе DOM и генерирует событие 'click' всегда (если элемент - кнопка внутри формы, и её тип - submit, то заодно генерируется и событие 'submit'). Ошибка может быть только в коде (нопремер, что значит условие - !!document.getElementById(value) - лично я не понимаю)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы