2017-01-17 21 views
0

我想用java自動登錄網站。我研究了很多,並正在使用HtmlUnit實現它。但是,我想要登錄的特定網站沒有ID和名稱的值。有人可以建議我可以在這裏做什麼?當您檢查登錄/密碼字段時,所有網站通常都有一個名稱或ID。這就是這個特定網站的樣子。自動化網站登錄,不用ID /名稱

<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> 

通常我發現的所有教程和建議在輸入標籤之間都有一個名稱或ID字段。我試過在引用其他來源之後實現這一點,但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'得到元素,或「佔位符」? – ChiefTwoPencils

+0

我嘗試通過xpath和屬性來提取元素。我收到了一個空的列表。所以我不知道發生了什麼。 – hammad2506

回答

0

取的XPath該輸入類型

  1. 電子郵件的XPath - > //輸入[@類型= '電子郵件']
  2. 密碼的Xpath - > //輸入[@類型=」密碼 ']

  1. 電子郵件的Xpath - > //輸入[@類=' JS-電子郵件的形式控制輸入-LG']
  2. 密碼的Xpath - > //輸入[@類= 'JS-密碼錶單控制輸入LG']