2017-01-17 3 views
0

Я хотел автоматизировать вход на сайт с помощью java. Я много исследовал и реализую его с помощью HtmlUnit. Однако на конкретном веб-сайте, на котором я хочу войти, нет значений для имени и имени. Может кто-нибудь, пожалуйста, предложите, что я могу здесь сделать? При проверке полей входа/пароля на каждом веб-сайте обычно указывается имя или идентификатор. Вот как выглядит этот сайт.Автоматизация входа в сайт без id/name

<div class="js-one-auth"> 
<input type="email" class="js-email form-control input-lg"  placeholder="Enter email"> 
<input type="password" class="js-password form-control input-lg" placeholder="Enter password"> 
<button type="submit" class="js-login btn btn-success btn-lg" style="width: 140px" disabled=""> 
<span class="vs-login-text">Log In</span> 
<i class="vs-spinner fa fa-refresh fa-spin"></i></button> 
<div class="js-caps-msg vs-login-msg alert alert-warning">Caps lock appears to be enabled</div> 
</div> 

Обычно все обучающие материалы и предложения, которые я нашел, имеют поле имени или идентификатора, доступное между входными тегами. Я попытался реализовать это после ссылки на другие источники, но элемент get доступен только для имени/id.

public static void main(String[] args) throws Exception{ 

final WebClient webClient = new WebClient(); 
final HtmlPage page = webClient.getPage("Site address"); 

HtmlElement usrname = page.getElementByName("email"); 
usrname.click(); 
usrname.type("[email protected]"); 

HtmlElement psswrd = page.getElementByName("password"); 
psswrd.click(); 
psswrd.type("mypassword"); 

HtmlElement signin = page.getElementByName("submit"); 
signin.click(); 
System.out.println(page.getTitleText()); 
webClient.close();; 

}

Любые предложения, как добиться этого?

+0

Вы пытались получить элемент его атрибуты, как '' type', class' , или 'placeholder'? – ChiefTwoPencils

+0

Я попытался сделать что-то, извлекая элемент по ссылке xpath, а также атрибуту. Я получил пустой список. Поэтому я не знаю, что происходит. – hammad2506

ответ

0

принимают XPath для этого типа входного

  1. электронной почты XPath -> // ввода [@ типа = 'электронной почты']
  2. пароль Xpath -> // вход [@ тип =» пароль ']

или

  1. электронной Xpath -> // вход [@ класс =' JS-электронной формы контроля ввода-Л.Г. ']
  2. пароль Xpath -> // вход [@ класс = 'JS-пароля форма контроля ввода-Л.Г.']
Смежные вопросы