Autologin HTML JS завершается с помощью getElementBy () - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть проблема для автоматического входа на веб-страницу, как показано ниже:

<div class="content">
<div class="card text-center">
<form>
<div class="dc-form-field-set">
<div class="dc-form-field-set-group">
<div class="dc-form-field-set-content">
<div class="dc-form-row">
<div class="dc-form-group dc-form-row-group">
<span class="dl-input-container dl-input-container-icon-position-left">
<input name="username" class="dc-input dc-text-input dl-input-with-icon" id="username" required=""          type="email" placeholder="Adresse e-mail" value="" autocomplete="username"></span>
</div>
</div>
</div>
</div>
</div>
<div class="dc-form-field-set">
<div class="dc-form-field-set-group"><div class="dc-form-field-set-content">
<div class="dc-form-row"><div class="dc-form-group dc-form-row-group">
<input name="password" class="dc-input dc-text-input dl-input-with-padding-for-link dl-input-with- icon" id="password" required="" type="password" placeholder="Mot de passe" value="" autocomplete="current-password">
</div>
</div>
</div>
</div>
</div>

Я пытаюсь найти элементы для их заполнения и отправить форму.

Я пробовал много вещей в JSgetElementsBy():

let row = document.getElementsByClassName('dc-form-field-set');
    for (var i = 0, j = row.length; i < j; i++) {
        alert('16a');
    }
    alert('13');

    let loginform = document.forms.form;

    //loginform.setAttribute("nojqueryvalidate", "false");
    alert('14');

    //let password = document.getElementsByClassName('dc-input dc-text-input dl-input-with-padding-for-link dl-input-with-icon')[0];
    //alert('17');
    //password.value = "pswd";
    //alert('17a');
    let username = document.getElementsByClassName('dc-input dc-text-input dl-input-with-icon');
    alert('16:' );
    for (var i = 0, j = body.length; i < j; i++)
    {
        alert('16a');
    }
    //username.setAttribute("placeholder", "text");
    //alert('16a');
    //username.setAttribute("autocomplete", "");
    //alert('16b');
    //let password = document.getElementsByClassName('dc-input dc-text-input dl-input-with-padding-for-link dl-input-with-icon')[0];
    //alert('17');
    //let sub = loginform.getElementsByClassName('dl-button-block dl-button-info dl-button')[0].getElementsByTagName('input')[0];

    //alert('17a');
    username.value = 'toto@gmail.com';
    alert('17b');
    password.value = "pswd";
    loginform.submit();
    alert('18');`

Когда я пытаюсь получить элемент, в большинстве случаев результат является пустым, и я не могу установить определенное значение для полей имени пользователя и пароля.

Сделалкто-нибудь сталкивался с подобной проблемой?Чего мне не хватает?

Редактировать: здесь скриншот между автозаполнением и вручную ссылка

1 Ответ

2 голосов
/ 26 сентября 2019

Вы ищете это, я думаю:

document.getElementById('username').value = "some name";
document.getElementById('password').value = "passwword";
document.querySelector('form button').click();
<div class="content">
<div class="card text-center">
<form>
<div class="dc-form-field-set">
<div class="dc-form-field-set-group">
<div class="dc-form-field-set-content">
<div class="dc-form-row">
<div class="dc-form-group dc-form-row-group">
<span class="dl-input-container dl-input-container-icon-position-left">
<input name="username" class="dc-input dc-text-input dl-input-with-icon" id="username" required=""          type="email" placeholder="Adresse e-mail" value="" autocomplete="username"></span>
</div>
</div>
</div>
</div>
</div>
<div class="dc-form-field-set">
<div class="dc-form-field-set-group"><div class="dc-form-field-set-content">
<div class="dc-form-row"><div class="dc-form-group dc-form-row-group">
<input name="password" class="dc-input dc-text-input dl-input-with-padding-for-link dl-input-with- icon" id="password" required="" type="password" placeholder="Mot de passe" value="" autocomplete="current-password">
</div>
</div>
</div>
</div>
</div>
...