亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java有沒有自動填寫表單提交?

java有沒有自動填寫表單提交?

繁星coding 2018-07-20 17:23:18
描述:我想用java(js)技術實現一個表單提交的操作,打開某表單網頁,用java對表單進行填充,然后提交。(其他站點)有點跨域的意思。沒有想到實現的思路,求教各位大神指點實現這種功能的思路。謝謝!目標網頁是其他任何表單網頁。
查看完整描述

2 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

HtmlUnit自動填寫表單并提交

 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 block  
            e.printStackTrace();  
        }  
    }  
}


查看完整回答
反對 回復 2018-07-30
  • 2 回答
  • 0 關注
  • 1849 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號