2016-04-12 2 views
1

Я пытаюсь зайти на сайт и войти в систему автоматически.Автоматизация входа на сайт (автозаполнение и отправка)

После этого я хочу вернуться, был ли это успех или неудача, но я не могу заставить его работать. Страница загружается пустым, и ничего не происходит.

Примечание: Я намеренно выделил URL-адрес.

Ниже моя попытка,

<HTML> 
<HEAD> 
<script src="https://code.jquery.com/jquery-2.2.3.min.js" type="text/javascript"></script> 
<TITLE>Login</TITLE> 
</HEAD> 
<BODY> 
</BODY> 
</HTML> 

<script type="text/javascript"> 
    $(document).ready(function() { 
      runLogin(); 
     }); 

    function runLogin(){ 
     alert("start"); 

     if (window.location.indexOf("url") > -1) { 
       jQuery("#j_username").val("username"); 
       jQuery("#j_password").val("password"); 
       jQuery("#loginForm").submit(); 
      } 
    } 
</script> 
+0

Почему вы хотите войти в систему таким образом? – Akshay

+0

Каковы данные, возвращаемые внутренним скриптом входа? Возвращает ли он HTML, JSON, XML или обычный текст? – 4castle

+0

Что означает 'window.location.indexOf (" url ")' должен делать? Это та часть, где вы затушевывали URL? – 4castle

ответ

1

Если вы хотите проверить свою регистрационную форму, используйте транспортир или другой тест e2e рамку, но этот путь не кажется очень безопасным.

http://angular.github.io/protractor/

0

Это загружается пустая страница, потому что Админцетр сценарий не перенаправляет обратно на страницу, начался. Один из вариантов - отправить текущий URL-адрес веб-страницы в качестве дополнительного поля в форму для входа в систему, чтобы он мог перенаправлять обратно после входа в систему. Это потребует, чтобы вы реорганизовали ваш внутренний код, чтобы он мог обрабатывать эту дополнительную информацию (не реально, если вы используете j_security_check). Другой вариант заключается в том, чтобы сделать запрос AJAX на вашу страницу входа, чтобы он фактически не перенаправлял страницу, он просто представляет форму спокойно, а затем JS обрабатывает ответ.

Если вы хотите добавить URL текущей страницы для запроса входа в систему, выполните следующие действия:

function runLogin() { 
    if (window.location.indexOf("url") > -1) { 
      jQuery("#j_username").val("username"); 
      jQuery("#j_password").val("password"); 
      jQuery("#loginForm").append(
       '<input type="hidden" name="url" value="'+window.location.href+'"/>' 
      ); 
      jQuery("#loginForm").submit(); 
    } 
} 

Если вы хотите использовать AJAX для отправки запроса на вход в систему:

function runLogin() { 
    var $form = $("#loginForm"); 
    $.post($form.attr("action"), $form.serialize(), function(data) { 
     // login successful/unsuccessful message displays 
     // depending on what "data" contains 
    }); 
} 
+0

Это тоже было мое мнение, так как из предоставленной вами информации я попытаюсь использовать ajax, потому что это ближе к тому, чего я пытался достичь в первом случае. Моя единственная проблема заключается в том, как я могу отправить форму на веб-странице. Указанная форма действительно #loginForm, но как заполнить отдельные поля с помощью запроса ajax? – James

+0

Посмотрите на функцию '.serialize()' jQuery и '$ .post'. Он преобразует формы в строки запроса. Это то, что я использовал в моем примере. – 4castle

+0

Также смотрите '$ .post'. Он берет URL-адрес, строку запроса и функцию обратного вызова и отправляет ее. Когда передача завершена, она выполняет функцию обратного вызова. – 4castle

Смежные вопросы