六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 106|回复: 0

HtmlUnit 2.6处理页面刷新的bug

[复制链接]

升级  40%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
20
 楼主| 发表于 2013-2-7 19:25:22 | 显示全部楼层 |阅读模式
HtmlUnit 2.6做了大量针对Javascript的工作,极大的提升了可用性,比如过去想做Form提交,要找到form所有元素,赋值后submit,一旦加了js处理或变更元素就麻烦了,现在可以简单的用focus,click,type之类的方式实现,很惬意。

尝试用来登录论坛,发现某些情况下登录会Exception,具体如下

        //初始页面        HtmlPage page = client.getPage("http://xxx.com");        //xxxMap保存要填入的key/value对,key可以是页面id或name        //getElementByStr结合了ById和ByName方式        for (Entry<String, String> item : xxxMap.entrySet()) {            HtmlElement elmt = getElementByStr(page, item.getKey());            elmt.click(); //触发点击这个文本框的某些js,比如清空            elmt.type(item.getValue()); //输入值        }        //找到提交按钮        HtmlButton loginBtn = (HtmlButton) getElementByStr(page, submitBtnName);        //执行点击动作        Page resultPage = loginBtn.click();        log.debug(resultPage.getWebResponse().getContentAsString()); 某些版本的论坛,登录后有自动跳转
<META HTTP-EQUIV="Refresh" CONTENT="3;URL=http://www.some.org/some.html"> 
毛病就出在CONTENT="3;..."这里,某些论坛不使用";"间隔,而是空格,造成HtmlUnit处理错误,存照与此,避免类似的困扰。
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表