Я пытаюсь войти на сайт с помощью Phantom JS, чтобы быть в курсе цен своих поставщиков.
Логин и пароль вводятся, но кнопка входа не нажимается.
Если кнопка входа является «вводом» вместо «кнопки», .click() должен работать, однако я не могу найти способ нажать «кнопку».
Форма входа не имеет идентификатора, ИМЯ или ДЕЙСТВИЯ для отправки.
Если кто знает решение буду очень признателен
Благодарность
Фантом JS
//username entered automatically on load
document.getElementById("password").value="1234";
document.getElementById('btn-login').click();
Форма входа
<form onsubmit="return false;" method="post">
<fieldset class="customer-login">
<div class="form-group">
<label for="name">Email Address</label>
<input type="username" class="form-control" id="username" placeholder="Enter your email address">
</div>
<div class="form-group">
<label for="name">Password</label>
<input type="password" class="form-control" id="password" placeholder="Enter your password">
</div>
<button type="submit" id="btn-login" class="btn btn-primary btn-block">
Log In
</button>
<hr>
<button type="button" id="btn-signup" class="btn btn-default btn-block">
Sign Up
</button>
<button type="button" id="btn-reset" class="btn btn-default btn-block">
Forgotten your password?
</button>
</fieldset>
</form>
результат после запуска скрипта
ОБНОВИТЬ
document.getElementsByClassName('btn btn-primary btn-block')[0].click();
однако работает, так как ничего не возвращается и перенаправляет, он останавливает программу, прежде чем она вернется на домашнюю страницу, вошедшую в систему. У кого-нибудь есть решение, чтобы заставить программу ждать (когда она не знает о своем перенаправлении)?
я пробовал do { phantom.page.sendEvent('mousemove'); } while (page.loading);
submit
, а неclick
. Таким образом, вы можете простоsubmit()
форму. Какdocument.forms[0].submit()
. Тем не менее, вы должны удалить свойreturn false
наform
, что предотвращает его отправку. - person Lain   schedule 10.08.2020