我用jwebunit编写的代码如下:
import java.io.UnsupportedEncodingException;import net.sourceforge.jwebunit.WebTestCase;
import junit.framework.TestCase;
import junit.framework.TestResult;
import junit.framework.TestSuite;public class wwwTest extends WebTestCase {public static void main(String[] args) {

try {
searchLink = new String(searchLink.getBytes("utf-8"), "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} TestResult rs = junit.textui.TestRunner.run(new
TestSuite(wwwTest.class));
}public void setUp() {
getTestContext().setBaseUrl("http://www.51ditu.com");//问题就在这里www.baidu.com就没有问题而www.51ditu.com就存在问题
//getTestContext().setProxyName("proxy.host.com");
//getTestContext().setProxyPort(80);
}public void testWWWSearch() {
beginAt("/");
}我这些时间研究了一下,发现jwebunit对页面有复杂js的的网站进行测试的时候报错误:
如:
getTestContext().setBaseUrl("http://www.51ditu.com");//问题就在这里www.baidu.com就没有问题而www.51ditu.com就存在问题
错误提示如下:
.E
Time: 1.609
There was 1 error:
1) testWWWSearch(com.lingtu.jwebunit.wwwTest)======= EXCEPTION START ========
EcmaError: lineNumber=[26] column=[0] lineSource=[null] name=[TypeError] sourceName=[http://www.51ditu.com/ls/js/indCit.js] message=[TypeError: Cannot set property "cursor" of undefined to "hand" (http://www.51ditu.com/ls/js/indCit.js#26)]
com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot set property "cursor" of undefined to "hand" (http://www.51ditu.com/ls/js/indCit.js#26)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:253)
at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptIfPossible(HtmlPage.java:696)
at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:209)
at com.gargoylesoftware.htmlunit.html.HtmlScript.appendChild(HtmlScript.java:168)
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.handleCharacters(HTMLParser.java:407)
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:368)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:249)
at org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:367)
at org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1015)
at org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:888)
at org.cyberneko.html.HTMLScanner$SpecialScanner.scan(HTMLScanner.java:2831)
at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:809)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:478)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:431)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:311)
at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:226)
at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:112)
at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:85)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:426)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:344)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:384)
at net.sourceforge.jwebunit.htmlunit.HtmlUnitDialog.beginAt(HtmlUnitDialog.java:117)
at net.sourceforge.jwebunit.WebTester.beginAt(WebTester.java:151)
at net.sourceforge.jwebunit.WebTestCase.beginAt(WebTestCase.java:99)
at com.lingtu.jwebunit.wwwTest.testWWWSearch(wwwTest.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at net.sourceforge.jwebunit.WebTestCase.runBare(WebTestCase.java:61)
at com.lingtu.jwebunit.wwwTest.main(wwwTest.java:27)
Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot set property "cursor" of undefined to "hand" (http://www.51ditu.com/ls/js/indCit.js#26)
(JavaScriptEngine.java:249)
... 43 more
Enclosed exception: 
org.mozilla.javascript.EcmaError: TypeError: Cannot set property "cursor" of undefined to "hand" (http://www.51ditu.com/ls/js/indCit.js#26)
== CALLING JAVASCRIPT ==
function getCookies(){//获得cookie的值,返回长度为4的字符串,如果没有cookie返回false
var cookies = document.cookie;
var city = cookies.split( ";" );
for( var i=0;i<city.length;i++ ){
var single = city[i].split( "=" );
if(single[0].indexOf( "cityName" ) != -1){
single[1] = decodeURI(single[1]);
return single[1].split( "&" );
break;
}
}
}
//点击事例提交表单
function submitForm( txt ){
document.sform.wd.value = txt;
document.sform.submit();
}
//城市列表选择
var btn = new Image(16,18);
btn.src = "/ls/img/topBtn.gif";
var menu = new CityMenu( document.sform.c , citys , btn );
menu.setLabel(getCookies());
======= EXCEPTION END ========FAILURES!!!
Tests run: 1,  Failures: 0,  Errors: 1不知道是否是此框架,确实有这样的问题?那位同仁可以提出个解决方法? 小弟这里谢过了!