html 页面工具,html页面工具-htmlUnit
HtmlUnit測試工具的推出,創意非常好。是一款給java開發用的browser。說它是browser,其實它是對html建模并且提供API來訪問頁面,點擊鏈接等等的java類庫。
這樣的測試工具有這樣幾個優點:
運行起來沒有界面,速度非常快。
由于是java類庫,有無限擴展的可能,可以構造各種功能強大的工具。包括本地化測試,多種數據源輸入數據。
跨平臺,跨瀏覽器。java本身就有跨平臺的特性,瀏覽器,只要簡單的設定一個參數就可以輕易模仿想要的瀏覽器了。
轉化為性能測試,非常簡單,可以共享同一腳本。
官網:http://htmlunit.sourceforge.net/
代碼示例:
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.HttpMethod;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.util.NameValuePair;
public class MySina {
private WebClient client;
private WebRequest request;
private String sinaLoginUrl = " http://mail.sina.com.cn/cgi-bin/login.php";
private String hostSinaUrl = "";
public static void main(String[] args) throws FailingHttpStatusCodeException, MalformedURLException, IOException {
String username = "***";
String password = "***";
String newpassword = "***";
String nickname = "***";
MySina mySina = new MySina();
if (mySina.mailLoginBySina(username, password)) { // 登錄
mySina.updatePwdBySina(password, newpassword); // 修改密碼
mySina.updateNickName(nickname); // 修改帳戶昵稱
} else {
System.out.println("登錄失敗!請檢查用戶名和密碼是否正確!");
}
}
public MySina(){
client = new WebClient(BrowserVersion.INTERNET_EXPLORER_8);
client.setJavaScriptEnabled(false);
}
/**
* 更改帳戶昵稱
*
* @param nickname 昵稱
* @return boolean
* @throws FailingHttpStatusCodeException
* @throws IOException
*/
public boolean updateNickName(String nickname) throws FailingHttpStatusCodeException, IOException {
String sinaSetUrl = hostSinaUrl + "basic/setting_account";
request = new WebRequest(new URL(sinaSetUrl), HttpMethod.POST);
request.setCharset("utf-8");
request.setRequestParameters(Arrays.asList(new NameValuePair("nickname", nickname), new NameValuePair("pop3",
"on"),
new NameValuePair("imap", "on")));
client.getPage(request);
HtmlPage p = client.getPage(hostSinaUrl + "classic/index.php");
if (p.getBody().getTextContent().indexOf(""NickName":"" + nickname + """) > 0) {
return true;
} else {
return false;
}
}
/**
* 修改密碼
*
* @param oldpassword 舊密碼
* @param newpassword 新密碼
* @return boolean
* @throws FailingHttpStatusCodeException
* @throws IOException
*/
public boolean updatePwdBySina(String oldpassword, String newpassword) throws FailingHttpStatusCodeException,
IOException {
String sinaSetUrl = " http://login.sina.com.cn/member/security/password.php";
request = new WebRequest(new URL(sinaSetUrl), HttpMethod.POST);
request.setCharset("gbk");
request.setRequestParameters(Arrays.asList(new NameValuePair("pass", oldpassword),
new NameValuePair("pass1", newpassword),
new NameValuePair("pass2", newpassword)));
HtmlPage p = client.getPage(request);
if (p.getBody().getTextContent().indexOf("您的密碼修改成功") > 0) {
return true;
} else {
return false;
}
}
/**
* 登錄
*
* @param username 用戶名
* @param password 密碼
* @return boolean
* @throws FailingHttpStatusCodeException
* @throws MalformedURLException
* @throws IOException
*/
public boolean mailLoginBySina(String username, String password) throws FailingHttpStatusCodeException,
MalformedURLException, IOException {
HtmlPage loginPage = client.getPage(sinaLoginUrl);
HtmlForm loginForm = loginPage.getFormByName("free");
HtmlInput u = loginForm.getInputByName("u");
HtmlInput psw = loginForm.getInputByName("psw");
HtmlSubmitInput loginButton = loginForm.getInputByName("登錄");
u.setValueAttribute(username);
psw.setValueAttribute(password);
HtmlPage result = loginButton.click();
String resultUrl = result.getUrl().toString();
if (resultUrl.indexOf("classic/index.php") > 0) {
String regex = "http://(.*?)/";
hostSinaUrl = myRegex(resultUrl, regex, null);
if (hostSinaUrl.length() > 0) {
return true;
} else {
return false;
}
} else {
return false;
}
}
/**
* 正則匹配替換
*
* @param str
* @param reg
* @param replace
* @return
*/
public String myRegex(String str, String reg, String[] replace) {
String result = null;
Matcher m = Pattern.compile(reg).matcher(str);
while (m.find()) {
result = m.group();
if (replace != null && replace.length > 0) {
for (String s : replace) {
result = result.replace(s, "");
}
}
}
return result;
}
}
總結
以上是生活随笔為你收集整理的html 页面工具,html页面工具-htmlUnit的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美图化妆秀使用教程:瞬间变身气质白富美
- 下一篇: 刀塔英雄英雄站位选择