JavaScript вроде бы не работает в консоли - PullRequest
0 голосов
/ 03 мая 2020

Я очень новичок в JavaScript, но я пытаюсь автоматизировать серию кликов на веб-странице. Мне удалось сделать это с помощью Selenium с помощью Python, который является моим предпочтительным языком, однако я узнал, что это можно сделать из консоли в «Inspect Element» через JS.

* 1002. * Пока что я нашел элемент через document.GetElementByClassName, однако, когда я просто помечаю тег на .click () и нажимаю ввод, на самом деле ничего не происходит. Я смотрел несколько обучающих видео, и в каждом из них, как только это будет сделано, будет выполнен щелчок. По какой-то причине это не происходит для меня.

Кнопка, которую я пытаюсь нажать, имеет HTML:

<button class="btn-standard call-to-action">Search</button>

Когда я затем ввожу следующее,

document.getElementsByClassName("btn-standard call-to-action");

консоль возвращает коллекцию HTML, которая содержит кнопку. Использование метода click () просто возвращает неопределенное значение в консоли, без видимых действий для кнопки.

Я знаю, что это неуклюжий вопрос, и его решение может быть очевидным для пользователей здесь. Но я в недоумении, почему ничего не происходит. Я также выполнил щелчок с индексом [0] на getElement, но пока безрезультатно. Если это имеет значение, я использую сафари (с включенным JS).

Заранее большое спасибо.

РЕДАКТИРОВАТЬ:

Страница, которую я имею попытка доступа находится за экраном входа в систему, поэтому требуется имя пользователя и пароль. Однако та же проблема присутствует с кнопкой входа в систему. Ссылка: https://www.easports.com/fifa/ultimate-team/web-app/

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Ответ найден по адресу: Функция нажатия не работает для кнопки

var targetNode = document.getElementsByTagName("button")[0];
if (targetNode) {
    //--- Simulate a natural mouse-click sequence.
    triggerMouseEvent (targetNode, "mouseover");
    triggerMouseEvent (targetNode, "mousedown");
    triggerMouseEvent (targetNode, "mouseup");
    triggerMouseEvent (targetNode, "click");
}
else
    console.log ("*** Target node not found!");

function triggerMouseEvent (node, eventType) {
    var clickEvent = document.createEvent ('MouseEvents');
    clickEvent.initEvent (eventType, true, true);
    node.dispatchEvent (clickEvent);
}
0 голосов
/ 04 мая 2020

@ SMAKSS был прав, но он забыл удалить дополнительный css селектор класса. Это должно работать.

document.getElementsByClassName("call-to-action")[0].click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...