How to locate Elements(一)

上一篇 / 下一篇  2013-07-03 20:22:07 / 天气: 热 / 心情: 熟了没? / 精华(1) / 置顶(1) / 个人分类:Selenium

之前已经搭建好基本的测试环境了,在正式编写测试脚本之前,我们需要去了解一下webdriver怎么去发现测试元素的?

第一种最快也是最方便的方法::By ID
通常网页上的元素会有一个唯一识别的ID 就像我们的身份证一样,它用来唯一标识某元素,WebDriver通过这种方法去发现元素的语法很简单
driver.findElement(By.id("*****"));  这里只要知晓元素的相对应的id就可以找到该元素了,也许会有人说我怎么知道id?直接检查页面元素就可以的在html代码中看到你想要的元素的id了,比如百度页面的搜索框相对应的html代码为:<input type="text" name="wd" id="kw" maxlength="100" class="s_ipt" autocomplete="off">这里可以清楚的看到该文本框的id为kw,相应的发现元素代码就应该为:driver.findElement(By.id("kw"))注意:不是所有的元素都有id,这个要根据但是开发的设计。
第二种方法:By Name
driver.findElement(By.name("****"));这里只要知道相对应的元素的name就可以成功的找到元素了,还以百度首页的搜索框为例,搜索框的name为wd,相应的代码应为driver.findElement(By.name("wd"))当然也不是所有的元素都有name。
第三种方法:By xpath
driver.findElement(By.xpath("****"));这里主要是通过元素的xpath来定位元素的,xpath的知识有兴趣的可以访问http://www.w3school.com.cn/xpath/去了解下,这里不做介绍,下面介绍几种即使你完全不懂xpath的语法你也照样可以运用xpath来发现元素的方法:
#1利用firefox的xpath插件在add-on中搜索xpath,然后选择 xpath checker,现在最新的版本是0.4.4,安装完成后,就可以运用xpath了,比如我想得到百度首页logo的xpath值只要把光标移到图片上右击view xpath 就可以得到xpath的值了:id('lg')/x:img,所以这里相对应的代码就应该为:driver.findElement(By.xpath("id('lg')/x:img"))
#2利用chrome的xpath插件,这个插件个人感觉比firefox下的插件更好用,出错的几率也相应的小了很多,该插件为PsychoXpath:https://chrome.google.com/webstore/detail/psychoxpath/bpnigkcdmnofjkmojlopmelmhgpbndog

,安装成功后,选定相应的元素右击你可以选择绝对路径(Absolute),这里不推荐这种绝对路径的,强烈推荐第二种(short),当然你也可以highlight元素,自己试试绝对感觉很有意思
获取到相应的xpath后就可以把值相应的替换到driver.findElement(By.xpath(""))中了
个人比较喜欢的3种方法介绍完毕,当然还有很多筛选元素的方法,接下来还会继续介绍
下期预告:By CssSelector, By linkText, By tagName, By className 等等

TAG:

Anthony的私房菜 引用 删除 joykao   /   2013-07-03 21:37:02
次奥排版原来是这样的啊?
 

评分:0

我来说两句

joykao

joykao

测试就是一种折腾,重要的是折腾个所以然来

日历

« 2024-04-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 28109
  • 日志数: 31
  • 图片数: 1
  • 文件数: 2
  • 建立时间: 2010-11-01
  • 更新时间: 2017-12-22

RSS订阅

Open Toolbar