Holmos自动化测试入门学习(二)-------页面元素定位
来源:互联网 发布:thinkpad怎么样知乎 编辑:程序博客网 时间:2024/06/07 06:28
学过WebDriver的同学一定知道页面元素的定位是WebDriver框架的核心内容,在Holmos一样页面元素的定位也
Holmos-webTest主要元素类型如下:
了解了页面的基本元素类型后,我们开始正式看看页面元素定位的方法。
Holmos 框架页面元素定位有9种方式:
非常的重要。
Holmos跟WebDriver有个很大的区别就是Holmos把页面元素的定位和业务流程操作分开,大幅度降低了代码维护的成本。
Holmos 团队的旭日云海,还针对Holmos页面元素定位的方式开发了个火狐的插件,可以快速自动的定位出整个页面元素的定位,
并可以在基本不做修改情况下直接使用。由于还没具体看到这火狐插件,这边就不说具体使用,默默等待ing....
在具体介绍定位方法之前,先简单介绍下Holmos中主要的元素类型
Holmos-webTest主要元素类型如下:
- Button 按钮
- CheckBox 勾选框
- Combobox 下了框
- Image 图片
- Label 标签
- Link 链接
- RadioButton 单选框
- RichTextField 长文本框/富文本框
- Table 表
- TextField 文本框
了解了页面的基本元素类型后,我们开始正式看看页面元素定位的方法。
Holmos 框架页面元素定位有9种方式:
- addIDLocator --------------根据ID属性值定位,速度快,准确率高,而且基本是唯一
- addNameLocator--------------根据Name属性定位
- addClassLocator-------------根据Class属性值定位
- addCSSLocator---------------根据CSS路径定位,一般用浏览器默认的CSS查找引擎,如果没有就用Sizzle作为查找引擎(例如IE6,7)
- addLinkTextLocator----------根据标签之间的Text值定位,如<a>Text</a>
- addPartialLinkTextLocator---根据部分文本值定位
- addTagNameLocator-----------根据dom节点的节点名来定位 如<a></a>节点名为a
- addXpathLocator-------------根据Xpath路径来定位
- addAttributeLocator---------根据dom节点中某一个属性和对应的属性值来定位
同样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地址。
- Holmos自动化测试入门学习(二)-------页面元素定位
- Holmos自动化测试入门学习(四)---------------iFrame里面元素的定位
- Holmos自动化测试入门学习(九)------用新开浏览器方式后页面元素的操作
- Holmos自动化测试入门学习(十)------list列表元素操作
- Holmos自动化测试入门学习(一)-------打开/关闭浏览器&&页面常用方法举例
- Holmos自动化测试入门学习(五)-----------下拉框选择
- Holmos自动化测试入门学习(六)---------截屏
- Holmos自动化测试入门学习(七)---------文件上传
- Holmos自动化测试入门学习(三)------处理alert、confirm、prompt对话框
- Selenium Java自动化测试学习知识积累-定位页面元素
- selenium+python自动化测试(三)--页面元素定位
- protractor自动化测试定位页面元素
- Robot Framework自动化测试(二)---元素定位
- Robot Framework自动化测试(二)---元素定位
- Appium+python自动化学习(二)——定位元素
- 菜鸟学自动化测试(五)-----selenium命令之定位页面元素
- UI自动化测试(二)浏览器操作及对元素的定位方法(xpath定位和css定位详解)
- 自动化测试之元素定位
- myeclipse 8.5 注册码
- URL优化时应该注意的八个要点
- OpenCV之创建图像并显示(c++版)
- C++异常处理(提高篇)
- ListView解析三
- Holmos自动化测试入门学习(二)-------页面元素定位
- 影响到网站收录有哪些方面呢
- Nutch的命令详解
- PL/SQL Developer 远程连接Oracle数据库
- 89C52/51系列 ADS7841驱动代码
- 谈谈网络投资规划的目标如何去设定
- 【读书笔记】linux系统用semaphore来解决经典的生产者-消费者问题
- 算法简介—堆与堆排序
- Holmos自动化测试入门学习(三)------处理alert、confirm、prompt对话框