HtmlUnit自动填写表单并提交
生活随笔
收集整理的這篇文章主要介紹了
HtmlUnit自动填写表单并提交
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景:對網頁的表單進行自動填寫并提交,如登錄框,和文章http://blog.csdn.net/fjssharpsword/article/details/51480475類似,不同的是這次button按鈕沒有id值和name值,只能通過value來獲取。
Htmlunit官網:http://htmlunit.sourceforge.net/ 可下載包
代碼:
package ebay;import java.io.IOException; import java.net.MalformedURLException;import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController; import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.DomElement; import com.gargoylesoftware.htmlunit.html.DomNodeList; import com.gargoylesoftware.htmlunit.html.HtmlButton; import com.gargoylesoftware.htmlunit.html.HtmlButtonInput; import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput; import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; import com.gargoylesoftware.htmlunit.html.HtmlTextInput;public class GGManage {public static void main(String[] args){String sUrl="IP";//網址//webclient設置WebClient webClient = new WebClient(BrowserVersion.CHROME); //創建一個webclient webClient.getOptions().setJavaScriptEnabled(true); // 啟動JS webClient.getOptions().setUseInsecureSSL(true);//忽略ssl認證 webClient.getOptions().setCssEnabled(false);//禁用Css,可避免自動二次請求CSS進行渲染 webClient.getOptions().setThrowExceptionOnScriptError(false);//運行錯誤時,不拋出異常 webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);webClient.setAjaxController(new NicelyResynchronizingAjaxController());// 設置Ajax異步 //登錄try {HtmlPage page = (HtmlPage) webClient.getPage(sUrl);HtmlForm form=page.getForms().get(0);//page.getFormByName("");HtmlTextInput txtUName = (HtmlTextInput )form.getInputByName("UserName"); //用戶名text框txtUName.setValueAttribute("name");HtmlPasswordInput txtPwd = (HtmlPasswordInput)form.getInputByName("Password");//密碼框txtPwd.setValueAttribute("password");//submit沒有name,只有class和value屬性,通過value屬性定位元素HtmlSubmitInput submit=(HtmlSubmitInput) form.getInputByValue("登 錄");page = (HtmlPage) submit.click();//登錄進入webClient.waitForBackgroundJavaScript(10000);//等待1秒System.out.println(page.asText());}catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}} }總結
以上是生活随笔為你收集整理的HtmlUnit自动填写表单并提交的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于mysql服务器3306端口不能远程
- 下一篇: 关于Linux访问web遇到403 Fo