当前位置:编程学习 > JAVA >>

htmlunit谁熟悉 小白求指教


try
{
WebClient client = new WebClient();
HtmlPage page = client.getPage("http://vss.yinzuo.cn/logon/logon.jsp");
HtmlInput username = page.getHtmlElementById("user_username");
HtmlInput password = page.getHtmlElementById("user_password");
HtmlInput valiCode = page.getHtmlElementById("check_code");
HtmlImage valiCodeImg = (HtmlImage) page.getElementById("img_checkcode");

ImageReader imageReader = valiCodeImg.getImageReader();
BufferedImage bufferedImage = imageReader.read(0);

JFrame f2 = new JFrame();
JLabel l = new JLabel();
l.setIcon(new ImageIcon(bufferedImage));
f2.getContentPane().add(l);
f2.setSize(100, 100);
f2.setTitle("验证码");
f2.setVisible(true);

String valicodeStr = JOptionPane.showInputDialog("请输入验证码:");
f2.setVisible(false);
username.click();
username.setValueAttribute("账号");
password.click();

password.setValueAttribute("密码");
valiCode.click();
valiCode.setValueAttribute(valicodeStr);
DomElement submit = page.getElementById("signin_submit");
().getWebResponse().getContentAsString());
HtmlPage resultPage = ((HtmlElement) submit).click();


System.out.println(resultPage.asXml());
}
catch(Exception e)
{
e.printStackTrace();
}

为什么我输入正确的账号密码验证码返回的是当前的页面呢(为什么不是点击之后的下个页面) htmlunit 抓取页面 验证码 登陆 --------------------编程问答-------------------- 这是登陆页面的部分源码

<div id="div_uid">登录代码:<input size="8" id="user_username" onkeypress="if(event.keyCode<=123 && event.keyCode>=97)event.keyCode=event.keyCode-32" onkeydown="requiredField()"  onBlur="checkcode_up(this)" ></div>
<div id="div_pass">密码:<input size="12" id="user_password" type="password" onkeydown="requiredField()"><a href="initPassword.html">密码找回</a></div>
<div id="div_img">验证码:    <input size="8" id="check_code" onkeypress="if(event.keyCode<=123 && event.keyCode>=97)event.keyCode=event.keyCode-32" onkeyup="checkcode_up(this);if(event.keyCode==13)login();" onkeydown="requiredField()"></div>
<div id="div_code"><img id="img_checkcode" src="../DaemonCode" alt="" />
<a href="javascript:window.location.reload();">看不清?</a></div>
<div id="div_logonbutton">
<input type="button" value="登 录" disabled="disabled" id="signin_submit" onClick="login()" > 
--------------------编程问答-------------------- 有没有高手啊、求支援!!!!! --------------------编程问答-------------------- 你这个应该是http://vss.yinzuo.cn/logon/logon.jsp  +点击按钮的action,参数,等等。你鼠标放到你的按钮看下源码的url --------------------编程问答--------------------
引用 3 楼 rui888 的回复:
你这个应该是http://vss.yinzuo.cn/logon/logon.jsp  +点击按钮的action,参数,等等。你鼠标放到你的按钮看下源码的url

这个点击按钮触发的是一个js 

function login(){
setLoading(true,'正在登陆……');
var url="../DaemonLogonVender?site=1&action=logon&logonid="+$('user_username').value+"&password="+document.getElementById('user_password').value+"&checkcode="+document.getElementById('check_code').value;      
var table = new AW.XML.Table;
table.setURL(url);
table.request();//发送url请求
table.response = function(text){
table.setXML(text);
if( table.getErrCode() != '0' ){//处理xml中的错误消息
alert( table.getErrNote() );
window.location.reload();
return;
}
setLoading(true,'登陆成功!');
location.replace( "main.htm" );
};
}

--------------------编程问答-------------------- 还有setValueAttribute(),setText(),setNodeValue()他们有什么区别?我应该用哪个? --------------------编程问答-------------------- 为什么要在每个 valiCode.setValueAttribute(valicodeStr);加上个valiCode.click();貌似不要先点击一下再输入吧 --------------------编程问答-------------------- 回复六楼:
这个无关紧要吧 模拟在输入之前鼠标点一下的操作 跟我过不去验证没什么关系
问题是 为什么我提交之后返回的是当前页面 --------------------编程问答-------------------- 真的没人知道了么 --------------------编程问答--------------------
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,