Вместо того, чтобы пытаться «нажать» кнопку, попробуйте отправить форму. Javascript для этой страницы ConEdison было бы:
document.getElementById("form-login-email").form.submit()
В «старые времена», с простой формой, это будет работать нормально.
Но на этом сайте есть много чего еще происходит. К этому элементу ввода электронной почты прикреплено девять событий. Просто заполняя значение, вы не запускаете ни одно из этих событий.
Например, для форм, созданных с использованием ReactJS, отслеживается взаимодействие пользователя с элементом Input, а значение извлекается и сохраняется в неотображаемом объекте в дереве DOM. При нажатии кнопки «Отправить» видимые элементы ввода формы могут вообще не использоваться. Чтобы вводить данные в такие формы, вам необходимо понимать ReactJS структуры данных и напрямую ими манипулировать.
Недавно я создал скребок на основе Chromedriver, который позволяет управлять окном браузера Chrome. из внешней программы, такой как Access VBA. После запуска Chromedriver запускается как мини-веб-сервер на локальном хосте, и команды, отправляемые ему из Access VBA (через объект ServerXMLHTTP60), заставляют его запускать Chrome, посещать URL-адреса, отправлять нажатия клавиш элементам ввода и т. Д. c. В браузере нажатия клавиш запускают все события, которые будут совершать нажатия клавиш человеком. Целевой веб-сайт был основан на ReactJS, но я смог игнорировать всю внутреннюю сложность ReactJS.
Поскольку веб-сайт работает в обычном браузере Chrome, я смог использовать F12 Инструменты разработчика в процессе разработки.
Технология Webdriver, разработанная для создания инструментов тестирования веб-сайтов. Также существуют версии Firefox и MS Edge Chromium.