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: