2011-02-02 41 views
9

Tôi đang cố gắng sử dụng HtmlUnit trong Java để đăng nhập vào một trang web. Trước tiên, tôi nhập tên người dùng rồi mật khẩu. Sau đó tôi cần phải chọn một tùy chọn từ một hộp thả xuống. nhập vào người dùng và mật khẩu dường như đã làm việc nhưng khi tôi cố gắng chọn mục từ hộp thả xuống tôi nhận được lỗi. Có ai có thể giúp tôi sửa cái này không? Mã của tôi như sau:Cách sử dụng HtmlUnit trong Java?

import com.gargoylesoftware.htmlunit.WebClient; 
import com.gargoylesoftware.htmlunit.html.HtmlElement; 
import com.gargoylesoftware.htmlunit.html.HtmlOption; 
import com.gargoylesoftware.htmlunit.html.HtmlPage; 
import com.gargoylesoftware.htmlunit.html.HtmlSelect; 


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

    final WebClient webClient = new WebClient(); 
    final HtmlPage page = webClient.getPage("website name here"); 
    HtmlElement usrname = page.getElementByName("username"); 
    usrname.click(); 
    usrname.type("myusername"); 
    HtmlElement psswrd = page.getElementByName("password"); 
    psswrd.click(); 
    psswrd.type("mypassword"); 
    HtmlSelect select = (HtmlSelect) page.getElementById("cmbProducts"); 
    HtmlOption option = select.getOptionByValue("ITDirect"); 
    select.setSelectedAttribute(option, true); 
    HtmlElement signin = page.getElementByName("SignIn"); 
    signin.click(); 
    System.out.println(page.getTitleText()); 
    webClient.closeAllWindows(); 
    } 
} 
+4

Telling chúng tôi chính xác những gì bạn nhận được lỗi sẽ khá hữu ích. – MatrixFrog

Trả lời

3

Đây là mã từ các bài kiểm tra đơn vị cho HTMLunit.

final HtmlSelect select = form.getSelectsByName("select1").get(0); 
final List<HtmlOption> expected = new ArrayList<HtmlOption>(); 
expected.add(select.getOptionByValue("option1")); 
expected.add(select.getOptionByValue("option3")); 

Lưu ý rằng họ sử dụng getSelectsByName không getElementById.

Đây là liên kết đến các bài kiểm tra đơn vị đó để bạn có thể xem cách họ quy định bằng API. http://htmlunit.sourceforge.net/xref-test/com/gargoylesoftware/htmlunit/html/HtmlSelectTest.html

3

Lấy biểu mẫu tên người dùng và mật khẩu đăng nhập.

đây là một ví dụ:

HtmlPage page3; 
    page3 = webClient.getPage("Website"); 
    HtmlForm loginForm = page3.getFormByName("loginForm"); 
    HtmlTextInput username = loginForm.getInputByName("NameofUsernameElement"); 
    HtmlPasswordInput pass = loginForm.getInputByName("NameofPassowordElement"); 
    HtmlSubmitInput b = loginForm.getInputByValue("LoginButtonValue"); 

    username.setValueAttribute("Actualy Username"); 
    pass.setValueAttribute("Actual Password"); 
    HtmlPage page2; 
    page2 = b.click(); 
Các vấn đề liên quan