Javadoc API for Watij:
http://watij.sourceforge.net/docs/api/index.html?watij/IE.html
第三章 Watij环境设置
3.1 Watij环境要求
l Watij 3.2.1
l JDK 1.5
l Java IDE(本文中使用Eclipse)
3.2 Watij安装及设置
l 下载软件包
Watij 3.2.1:
下载地址:http://sourceforge.net/project/showfiles.php?group_id=165206
JDK 1.5或以上:
下载地址:http://java.sun.com/javase/downloads/index_jdk5.jsp
安装&配置
1. 安装JDK1.5;
2.解压watij_release_3.2.1.zip;
3.拷贝watij_release_3.2.1\ jniwrap.dll到C:\windows\system32\;
4.配置Eclipse的编译器为JDK1.5;
依次打开Window->Preferences->Java->Compiler,设置“Compiler compliance level”为5.0
新建工程
依次打开New->Project,选择“Java Project”,点击“Next”
“Project Name”中输入“Watij”,点击“Next”
在“Java Settings”中选择“Libraries”选项卡,点击“Add External JARs”,
添加“watij.jar”和lib目录下的所有jar,点击“Finish”
第四章 Watij for google seacher Example
这部分主要描述如何打开IE浏览器、IE导航、IE窗口的设置与调整。
本次Web自动化测试的例子使用LoadRunner中自带的HP Web Tours。
1. 打开Eclipse,新建一个“Junit Test Case”,输入“Name”为“SearcherTest”,点击“Finish”
2. 输入以下代码:
import junit.framework.TestCase;
import watij.runtime.ie.IE;
import static watij.finders.SymbolFactory.*;
public class SearcherTest extends TestCase {
public void testSearcher () throws Exception {
IE ie = new IE();
//打开 IE 浏览器
ie.start(http://www.google.com);
ie.textfield(name,"q").set("XWiki");
ie.button("google search").click();
assertTrue(ie.containsText("/java Wiki engine/"));
}
}
4. 运行:输入以上代码并保存后,选择“Run as”->“JUnit Test”
5. 执行结果:执行过程没有错误时,JUnit执行状态显示绿色, 并且打开google的查询页面
6. 代码解释:
1) 在打开IE浏览器之前,需要实例化一个IE对象:
IE ie = new IE();
2) 使用start方法,打开新的IE浏览器:
IE ie = new IE();
ie.start();
也可以打开浏览器后转到某个URL:
IE ie = new IE();
ie.start("http://google.com");
3) IE导航的几种方法:
ie.goTo("http://www.baidu.com"); //转到www.baidu.com
ie.navigate("http://www.google.com"); //转到www.google.com,同goTo
ie.forward(); //转到历史列表中的前一个地址
ie.back(); //转到历史列表中的后一个地址
4) IE窗口设置、调整:
ie.bringToFront(); //将IE窗口置为最前
ie.focus(); //设置为当前焦点
ie.maximize(); //最大化窗口
ie.minimize(); //最小化窗口
ie.restore(); //重置窗口为之前的状态
ie.fullScreen(true); //turns the window's full screen mode on
ie.fullScreen(false); //turns the window's screen mode back to normal
ie.theatreMode(true); //turns the window's theatre mode on
ie.theatreMode(false); //turns the window's screen mode back to normal
ie.visible(false); //隐藏窗口
ie.visible(true); //显示窗口
ie.left(100); //调整窗口位置
ie.top(200); //调整窗口位置
4.1.2 用户登录测试
模拟用户输入;登录成功后,验证提示信息及HTML元素数量。
启动WEB服务器及新建JUnit Test Case步骤(省略)
1. 输入以下代码:
import watij.runtime.ie.IE;
import junit.framework.TestCase;
import static watij.finders.SymbolFactory.*;
public class LoginWithRightUsernamePassword extends TestCase {
public void testLoginWebTours () throws Exception {
int button_id;
int button_numbers = 4;
String[] button_src = new String[button_numbers];
IE ie = new IE();
ie.start();
ie.bringToFront();
ie.goTo("http://127.0.0.1:1080/WebTours");
ie.frame("body").frame("navbar").textField(name, "username").set("jojo");
ie.frame("body").frame("navbar").textField(name, "password").set("bean");
ie.frame("body").frame("navbar").button(value, "Login").click();
// Verify user "jojo" has logged in and four buttons displayed
assertTrue( ie.frame("body").frame("info").containsText("jojo") );
for (button_id=0; button_id<button_numbers; button_id++) {
button_src[button_id] = ie.frame("body").frame("navbar").images().get(button_id).src();
}
// Capture current Screen
ie.focus();
ie.maximize();
ie.screenCapture("d:\\login_PASSED.png");
}
}
2.代码解释:
1) 输入用户名、密码:
Watij根据HTML标签提供的文字输入列的name、id或其他属性来设置其值。textfield的HTML代码形如:
<input type=text name=username value='' size=14 maxlength=14>
<input type=password name=password value='' size=14 maxlength=14>
输入用户名、密码,可以使用如下方法:
ie.textField(name, “username”).set(“jojo”);
ie.textField(name, “password”).set(“bean”);
获取某个textfield的值,使用:
ie.textField(name, “username”).get();
ie.textField(name, “password”).get();
2) 点击Login,登录:
Watij中button支持的HTML对象包括:<input> 标签type为image、submit、button或reset
<input type=image name=login value=Login alt=Login border=1
src='/WebTours/images/mer_login.gif'>
<input type="submit" id="SubmitLoginBTN" value="登录(L)" accesskey="L" class="loginSubmit" />
<input type="button" value="登录" name="btnSubmit">
使用button的click方法来模拟用户点击操作:
ie.button(value, “Login”).click();
ie.button(id, “SubmitLoginBTN”).click();
ie.button(name, “btnSubmit”).click();
3) 验证用户是否已经登录:
验证该用户是否已经登录,可以通过提示信息是否包含该用户的名字以及左边框架中包含四个buttons来验证。验证HTML body中是否包含某些文本,使用如下方法:
ie.containsText(“jojo”);
它的返回值是True或False,可以使用断言来验证该用户是否已登录:
assertTrue( ie.containsText(“jojo”) );
4) 截图:
最后,要保存一下测试结果,即将登录后窗口截图。如下代码,会将当前屏幕截图保存到d:\login_PASSED.png。
ie.screenCapture(“d:\\login_PASSED.png”);