学过WebDriver的同学一定知道页面元素的定位是WebDriver框架的核心内容,在Holmos一样页面元素的定位也
非常的重要。
Holmos跟WebDriver有个很大的区别就是Holmos把页面元素的定位和业务流程操作分开,大幅度降低了代码维护的成本。
Holmos 团队的旭日云海,还针对Holmos页面元素定位的方式开发了个火狐的插件,可以快速自动的定位出整个页面元素的定位,
并可以在基本不做修改情况下直接使用。由于还没具体看到这火狐插件,这边就不说具体使用,默默等待ing....
在具体介绍定位方法之前,先简单介绍下Holmos中主要的元素类型
|
同样Holmos 支持多维方式定位,就是你一个页面元素可以同时用上面1种或多种方式去定位,只要一种方式成功便成功定位。
以下以百度首页为具体例子:
1.首先新建个百度Page类,类名就叫Baidu,并继承Page类,代码示例
import com.holmos.webtest.element.Button;
import com.holmos.webtest.element.Image;
import com.holmos.webtest.element.Link;
import com.holmos.webtest.element.TextField;
import com.holmos.webtest.struct.Page;
public class Baidu extends Page {
// 构造个方法,元素定位页面的固定学法
public Baidu() {
super();
this.comment = "百度首页";// 页面注释
this.init();// 页面元素收集
}
// 实例化个图片元素 百度LOGO
public Image logo =new Image( "百度logo" );
{
logo.addXpathLocator(".//*[@id='lg']/img" );// 这里采用Xpath方式定位
}
// 实例化一个链接元素 登陆标签
public Link loginLink =new Link( "登录标签" );
{
loginLink.addLinkTextLocator("登录" );// 这里使用标签之间的Text值定位
}
// 实例化一个文本框元素 搜索输入框
public TextField input =new TextField( "搜索输入框" );
{
input.addIDLocator("kw" );// 这里使用ID值定位
}
// 实例化一个文本框元素 搜索输入框,并多维定位
public Button search =new Button( "百度一下" );
{
search.addIDLocator("su" );// 这里使用ID值定位
search.addXpathLocator("html/body/div[1]/div[1]/div[2]/div/form/span[2]/input" );//采用Xpath绝对值定位
}
}
2.页面元素定位完成,对页面元素进行操作,验证是否定位准确。
新建个测试类,类名我们就取Baidu_Test,具体代码如下:
import org.junit.Test;
import com.holmos.webtest.EngineType;
import com.holmos.webtest.utils.HolmosWindow;
public class Baidu_Test {
public Baidu baidu =new Baidu();
/**
*1.在搜索框输入: Holmos
*2.点击百度一下,进行搜索
*/
@Test
public void search(){
HolmosWindow. openNewWindow(EngineType.WebDriverChrome, "http://www.baidu.com" );// 打开百度页面
baidu.input .setText("Holmos"); // 搜索框输入: Holmos。 setText()为文本框传值的方法
baidu.search .click();// 点击百度一下,进行搜索。 click()是鼠标点击操作
HolmosWindow. closeAllWindows();// 关闭结束测试
}
/**
* 获取百度LOGO图片的标签中URL属性的值,并打印
*/
@Test
public void getIMGURL(){
HolmosWindow. openNewWindow(EngineType.WebDriverChrome, "http://www.baidu.com" );// 打开百度页面
System. out.println(baidu .logo.getAttribute( "src"));//getAttribute()方法就是获取某个元素某个属性的值
HolmosWindow. closeAllWindows();// 关闭结束测试
}
}
执行结果:
控制台输出可以看到;
最后介绍个在页面元素中定位非常好用的火狐浏览器插件叫:FirePath。安装完后在FireBug中就可以看到。
下面1 2 3个鼠标点击步骤便可以查看到你要定位元素的Xpath地址。