我访问了一个HTML,其中包含HtmlUnit的ECharts代码。
div
picstr
的内容是图表的base64字符串。
问题是:此div
的内容在Java输出中不同于HTML输出。
请帮忙。
这是我的HTML代码:
<body>
<div id="main" style="width: 600px;height:400px;"></div>
<div id="picstr"></div>
<script type="text/javascript">
var searchStr = location.search;
searchStr = searchStr.substr(1);
var searchs = searchStr.split("&");
var data1 = searchs[0].split("=");
var data2 = searchs[1].split("=");
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: 'ECharts'
},
tooltip: {},
legend: {
data:['销量', '产量']
},
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: data1[1].split(","),
barGap: 0,
itemStyle: {
normal: {
color: function() {
return '#ff960d';
},
label: {
show: true,
position: 'top'
}
}
}
} , {
name: '产量',
type: 'bar',
data: data2[1].split(","),
barGap: 0,
itemStyle: {
normal: {
color: function() {
return '#18c109';
},
label: {
show: true,
position: 'top'
}
}
}
}]
};
myChart.setOption(option);
document.getElementById("picstr").innerHTML = myChart.getDataURL({});
</script>
</body>
这是我的Java代码:
final WebClient webClient = new WebClient();
webClient.waitForBackgroundJavaScript(2000);
webClient.getOptions().setJavaScriptEnabled(true);
WebRequest request = new WebRequest(new URL("http://localhost:8888/lab/test.html?d1=5,20,36,10,10,20&d2=15,30,40,15,18,30"), HttpMethod.GET);
final HtmlPage page = webClient.getPage(request);
webClient.waitForBackgroundJavaScript(10000);
System.out.println(page.asXml());
webClient.close();
HtmlUnit版本为2.31。
Java代码输出如下:
data:image / png; base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAYAAAByNR6YAAADuUlEQVR42u3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAA ........ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBnqGIAAZdYcO8AAAAASUVORK5CY
但是HTML显示:
data:image / png; base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAYAAAByNR6YAAAgAElEQVR4Xu3dDZQkZX3v8f9TvTPsrjugARE9UY5ywxGMyHb1QPaS ..... AAAIIIkALtlL / H4BE
答案 0 :(得分:0)
也许您的期望值很高:
总而言之,我认为比较getDataURL()结果并不是测试图表的良好(稳定)标准。