日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html 页面工具,html页面工具-htmlUnit

發(fā)布時間:2023/12/4 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html 页面工具,html页面工具-htmlUnit 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

HtmlUnit測試工具的推出,創(chuàng)意非常好。是一款給java開發(fā)用的browser。說它是browser,其實它是對html建模并且提供API來訪問頁面,點擊鏈接等等的java類庫。

這樣的測試工具有這樣幾個優(yōu)點:

運行起來沒有界面,速度非常快。

由于是java類庫,有無限擴展的可能,可以構造各種功能強大的工具。包括本地化測試,多種數(shù)據(jù)源輸入數(shù)據(jù)。

跨平臺,跨瀏覽器。java本身就有跨平臺的特性,瀏覽器,只要簡單的設定一個參數(shù)就可以輕易模仿想要的瀏覽器了。

轉(zhuǎn)化為性能測試,非常簡單,可以共享同一腳本。

官網(wǎng):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的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。