1.htmlunitdriverԴ?源码?
2.å¦ä½è·åç½ç«jså¾çå¦ä½è·åç½ç«jså¾ç
htmlunitdriverԴ??
如果GET方法可以发送请求,那么HttpConnection是源码可以搞定的,就是源码832的供应商溯源码拼接下URL字符串而已。如果是源码POST方式发送请求的,而且网站只是源码源码升级openssh一个简单提交表单,那么WebDriver这个开源项目,源码stanford parser源码使用这个项目自带的源码浏览器驱动(一个简单的浏览器,不会显示浏览器具体操作,源码但可以模拟相关的源码操作)是可以满足你的要求的。
给你一个简单的源码例子:
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class TestHtmlUnitDriver {
/
*** @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
HtmlUnitDriver dr = new HtmlUnitDriver(false); //使用自动的简单HTML浏览器驱动,false为不显示DEBUG信息。源码
dr.get("
);
//检查页面title
System.out.println("页面Title:"+dr.getTitle());
WebElement el = dr.findElement(By.xpath("//html"));
// System.out.println(el.getText());
WebElement input = dr.findElement(By.id("kw"));
//搜索关键字
input.sendKeys("webDriver");
WebElement button = dr.findElement(By.id("su"));
//提交表单 webDriver会自动从表单中查找提交按钮并提交
button.click();
//或者直接
//input.submit();
//检查页面title
System.out.println("页面Title:"+dr.getTitle());
dr.close();
}
}
另外一种方式,源码JDK自带的源码灰色预测源码HttpConnection
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class TestHttpURLConnection {
/
*** @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String url="/s?wd=WebDriver&ie=utf-8";
try {
HttpURLConnection ponentsseparatedbystring:@]];
if(murlarray.count=2){
[mUrlArrayremoveLastObject]ï¼
}
//urlResurltæ¯ææè·åå¾ççURLçæ¼æ¥ï¼MUrlArrayæ¯ææURLçæ°ç»ã
//ç¹å»jsæ·»å å¾ç
[mWebViewstringbyevaluatingjavascriptfromstring:@å½æ°registimageclickaction(){
varimgs=document.getElementsByTagName(img);varimgs=document.getelementsbytagname(img
varlength=imgs.length;varlength=imgs.length
for(varI=0ï¼æi){
img=imgs[I]ï¼
img.onclick=function(){
window.location.href=å¾åé¢è§:this.src}
}
}
[mWebViewstringbyevaluatingjavascriptfromstring:@registimageclickaction()ï¼
}
//å¨è¿ä¸ªæ¹æ³ä¸ï¼æè·å¾åçç¹å»äºä»¶å被ç¹å»å¾åçurlã
-(BOOL)webView:(UIWebView*)webViewshouldStartLoadWithRequest:(NSURLRequest*)请æ±å¯¼èªç±»å:(UIWebViewNavigationType)导èªç±»å{
//é¢è§å¾ç
å¦æ(ã请æ±ãURL.schemeisequaltostring:@å¾åé¢è§å¾åé¢è§:
path=[pathstringbyaddingpercentescapesusingcoding:nsuTF8stringencoding]ï¼
//pathæ¯è¢«ç¹å»å¾åçurlã
è¿åå¦ï¼
}
è¿åYES
}
åªäºæ¹æ³å¯ä»¥è·åhttpä¸çcookieï¼
ä¸è¬çç½é¡µé½è½è·åãæ两ç§åæ³
1.å¨æµè§å¨çå°åæ è¾å ¥ï¼javascript:alert(document.cookie)(ä¸åºå大å°å)ï¼å°±ä¼å¼¹åºä½ å¨å½åç½é¡µç»å½çcookieä¿¡æ¯ã
2.æFè¿å ¥æµè§å¨çå¼åè 模å¼ââconsoleââå¨å½ä»¤è¡è¾å ¥javascript:alert(document.cookie)ï¼åå车
ç¨htmlunitæä¹å»è·åä¸ä¸ªæJSå è½½çç½é¡µä¿¡æ¯ï¼
æ两ç§æ¹å¼ä¾éæ©ææ¨è第ä¸ç§ï¼ä¸ï¼å»é 读ç¸å ³çç½é¡µéçjsåç½é¡µè¯·æ±ä¹åçheaderï¼éè¿handerç¥éè¿ä¸ªè·åè¿ä¸ªä¿¡æ¯çæ¥å£ãéè¿httpclientæ¥è·ç¥ä½ æ³è¦çä¿¡æ¯ã
äºï¼éè¿htmlunitæ¡æ¶æä¾çæ¹æ³ï¼JavascriptExecutorjsExecutor=(JavascriptExecutor)driver;jsExecutor.executeScript(LoginSubmit();,);è¿éçLoginSubmitå°±æ¯é¡µé¢éçjsæ¹æ³å称ï¼é¡µé¢éè¦æè¿ä¸ªjsæ¹æ³ï¼å½ç¶ä½ ä¹å¯ä»¥èªå·±åä¸äºjsï¼ãç¶åéè¿domæä½æ¥è·åä½ æ³è¦çä¿¡æ¯ã
html5æè JSææ ·è°ç¨ææºæå头æè ç¸åï¼
inputtype="file"accept="video/*;capture=camcorder">inputtype="file"accept="audio/*;capture=microphone">inputtype="file"accept="image/*;capture=camera">ç´æ¥è°ç¨ç¸æºinputtype="file"accept="image/*"/>è°ç¨ç¸æºå¾çæè ç¸åè¿æ¯è¦æ ¹æ®ææºçç±»åæ¥è¯´ï¼æäºææºåªè½è°ç¸æºï¼æäºææºåªè½è°ç¸åï¼æè 两è é½è¡ã以ä¸ï¼å¸æè½å¸®å©å°ä½ ã
ç¬è«å¦ä½è·åç½é¡µcssæ ·å¼ï¼
1ãéè¿ä¿åç½é¡µå³å¯è·åæ³è¦å¯¹åºé¡µé¢ä¸é¢çjsãcssæ件ï¼æçjsãcss被ç¼è¯æå缩è¿é¡»è¦åå©ç¬¬ä¸æ¹å·¥å ·æ¥åç¼è¯ææ ¼å¼åï¼
2ãæå¼æµè§å¨çå¼å模å¼ï¼ä¸è¬æå¿«æ·é®få°±å¯ä»¥æå¼ï¼ä»¥googleæµè§å¨ä¸¾ä¾ï¼ç¹å»æ ç¾resourceï¼ç¶åå¨å¯¹åºçèµæºæ件ä¸æ¾å°èªå·±éè¦çæ件åå³é®saveå³å¯ã
å¦ä½è·åä¸ä¸ªç½é¡µå®æ´çHTML代ç ï¼
å¨é¡µé¢ä¸å³å»æ¥çç½é¡µæºä»£ç å¯ä»¥å¾å°å¼å ¥çcssåjséè¦åç¬æ¾å°å¤å¶ä¸æ¥