WebSpec是Watij自动化测试项目里面的一个类。Watij工具调用ie、firefox等浏览器对网页进行测试,也就是说可以解析javascript,对于那些需要手工操作的填表单等工作都可以用Watij模拟。
下面以自动点击baidu,并填入“黄河”为搜索关键词进行搜索作为例子。
先用Dreamweaver查看baidu首页的源代码。
<div id="m"><p id="lg"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" width="270" height="129" usemap="#mp"><map name="mp"><area shape="rect" coords="40,25,230,95" href="http://hi.baidu.com/baidu/" target="_blank" title="点此进入 百度的空间" ></map></p><p id="nv"><a href="http://news.baidu.com">新 闻</a> <b>网 页</b> <a href="http://tieba.baidu.com">贴 吧</a> <a href="http://zhidao.baidu.com">知 道</a> <a href="http://mp3.baidu.com">MP3</a> <a href="http://image.baidu.com">图 片</a> <a href="http://video.baidu.com">视 频</a> <a href="http://map.baidu.com">地 图</a></p><div id="fm"><form name="f" action="/s"><span class="s_ipt_wr"><input type="text" name="wd" id="kw" maxlength="100" class="s_ipt"></span><input type="hidden" name="rsv_bp" value="0"><input type="hidden" name="rsv_spt" value="3"><span class="s_btn_wr"><input type="submit" value="百度一下" id="su" class="s_btn" onMouseDown="this.className='s_btn s_btn_h'" onMouseOut="this.className='s_btn'"></span></form><span class="tools"><span id="mHolder"><div id="mCon"><span>输入法</span></div></span></span><ul id="mMenu"><li><a href="#" name="ime_hw">手写</a></li><li><a href="#" name="ime_py">拼音</a></li><li class="ln"></li><li><a href="#" name="ime_cl">关闭</a></li></ul></div>
输入框对应的源代码:<input type="text" name="wd" id="kw" maxlength="100" class="s_ipt">
“百度一下”按钮对应的源代码:<input type="submit" value="百度一下" id="su" class="s_btn" onMouseDown="this.className='s_btn s_btn_h'" onMouseOut="this.className='s_btn'">
用WebSpec打开baidu的url,并填入“黄河”,点击搜索:
public void run(){
WebSpec spec = new WebSpec().ie();
if(spec.ready())
{
spec.open(url);
spec.pauseUntilReady();
spec.find.input().with.name("wd").set.value("黄河");
spec.find.input().with.id("su").click();
System.out.println(spec.source());
}
else{
System.out.println("not ready");
}
spec.close();
}