一、几种网页定位方式

webdriver的页面定位很灵活,提供了8种定位方式;

其中,常见的有三种:id 、cssSelector 、xpath;

一个元素如果存在 id 属性,则这个 id 的值,在当前页面绝对是唯一的,测试代码根据id来查找元素,速度也是最快的,所以如果条件允许,当然用id最省事;

而很多时候,元素对象并不存在id、或者存在动态的id,那么选择xpath、或者 cssSelector,可以很好的解决定位困难的难题;他们可以定位到网页上90%以上的元素。

二、xpath定位法

xpath是一种选择器,有自己的语法,可以参考w3school,了解一下,有xpath基础的,可以跳过;

在Firefox浏览器中有firebug 和 firepath插件,可以帮助我们自动生成xpath 路径表达式,初学者不建议使用火狐浏览器来学习,路径表达式最好自己理解之后,自己写;

QQ图片20161116212247.png1292x787 152 KB

(1)xpath常用符号说明

QQ图片20161116212549.png742x341 43.8 KB

绝对路径:一般从很目录开始 /html/... 这种写法,很长很繁琐,不推荐使用;
相对路径:又称为 无限深度查询,表达式比较简洁;

(2)简单模式

QQ图片20161116214751.png1511x449 43.1 KB

(3)使用函数

常用的函数有:contains( , )、text(" ") 、starts-with( , )

QQ图片20161116220045.png1383x715 63.8 KB

(4)xpath的轴定位

轴的概念:

QQ图片20161116220241.png1362x691 133 KB

一个例子说明:

QQ图片20161116221635.png1367x773 173 KB

用xpath轴时应该注意的几个问题:
1. 调用轴,最好用 “ /”
2. 轴后边要加上符号“::”
3. "::" 后边可以接节点名称,也可以接" * "

做自动化测试,避免不了定位页面的元素,定位方式多种多样,如果自己擅长一种定位方式并熟练使用,将对工作非常有帮助;

     更多详情请关注公众号“软件测试部落”


史上第一个以“持续集成”方向为主的地址:www.hordehome.com

基于Selenium2+Java的UI自动化(3) - 页面元素定位的更多相关文章

  1. 基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍

    1. 启动浏览器 前边有详细介绍启动三种浏览器的方式(IE.Chrome.Firefox): private WebDriver driver = null; private String chrom ...

  2. 基于Selenium2+Java的UI自动化(8)- 显式等待和隐式等待

    一.隐式等待 package com.automation.waits; import java.util.concurrent.TimeUnit; import org.openqa.seleniu ...

  3. 基于Selenium2+Java的UI自动化(1) - 原理和环境搭建

    一.Selenium2的原理 Selenium1是thoughtworks公司的一个产品经理,为了解决重复烦躁的验收工作,写的一个自动化测试工具,其原理是用JS注入的方 式来模拟人工的操作,但是由于J ...

  4. 基于Selenium2+Java的UI自动化(6)-操作Alert、confirm、prompt弹出框

    alert.confirm.prompt这样的js对话框在selenium1 时代处理起来比价麻烦,常常要用autoit来帮助处理.而现在webdriver对这些弹出框做了专门的处理,使用seleni ...

  5. 基于Selenium2+Java的UI自动化(5) - 执行JavaScript脚本

    一.操作日期选择框 QQ图片20161118215530.png1336x545 22.6 KB 说明:日期选择框大部分是不支持前端输入的,因为这个对象是 readOnly,只读属性,selenium ...

  6. 基于Selenium2+Java的UI自动化(2) - 启动浏览器

    一.准备工作 我们常用的浏览器主要有三个:chrome.Firefox.IE:其中chrome 和 IE 需要下载驱动程序,才能启动浏览器,注意驱动程序有32位和64位两种. 另外:如何查看本机的浏览 ...

  7. java selenium webdriver第二讲 页面元素定位

    自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...

  8. java selenium webdriver实战 页面元素定位

    自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...

  9. appium自动化测试之UIautomatorviewer元素定位

    appium自动化测试之UIautomatorviewer元素定位 标签(空格分隔): uiautomatorviewer元素定位 前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具 ...

随机推荐

  1. Spring 拦截器配置

    Spring interceptor拦截器配置 Spring mvc的拦截器是通过handlerinterceptor来实现的 实现方式: 1.自定义一个类实现Spring的handlerinterc ...

  2. js中的new关键字都干了些什么?

    new 操作符 在有上面的基础概念的介绍之后,在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在javascript中,我们将这类方式成为Pseudoclassic ...

  3. CDH 5.5.1 Yum源服务器搭建

    CDH 5.5.1 Yum源服务器搭建 下载Cloudera Repo #下载资源仓库repo wget https://archive.cloudera.com/cdh5/redhat/6/x86_ ...

  4. Stones

    题目是:HDU1896 题目简述:输入一堆石头,每个石头有自己所在的位置p,以及自己可以抛多远的距离d.你每遇到第奇数个石头,就把石头丢出去,第偶数个石头就不管.计算出最后一个石头它所处的位置. 解法 ...

  5. 高级C++开发工程师综合测试题(风林火山)

    题目要求:代码要求能够直接编译运行 1.       请实现一个函数:凑14:输入很多个整数(1<=数值<=13),任意两个数相加等于14就可以从数组中删除这两个数,求剩余数(按由小到大排 ...

  6. angular的filter

    angular的filter filter两种用法 1.在模板中使用filter {{expression|filter}}//基本用法 {{expression|filter1|filter2|fi ...

  7. thinkPHP配置项

    'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符 'TMPL_L_DELIM'=>'<{', //修改左定界符 'TMPL_R_DELIM'=>'}&g ...

  8. IOS知识小记

    iOS开发 小知识点 http://www.cnblogs.com/tangbinblog/archive/2012/07/20/2601324.html Objective-C中的instancet ...

  9. Android设计模式系列--原型模式

    CV一族,应该很容易理解原型模式的原理,复制,粘贴完后看具体情况是否修改,其实这就是原型模式.从java的角度看,一般使用原型模式有个明显的特点,就是实现cloneable的clone()方法.原型模 ...

  10. cocos2d-x 手势之简单实现

    转自:http://blog.sina.com.cn/s/blog_61ece099010187tl.html 手势之前也发过一篇,但是我感觉那个还不够轻巧. 而且大多数游戏里面不会有那么复杂的手势, ...