简单对象定位

简单对象定位:

webdriver 提供了一系列的元素定位方法,常用的有以下几种:

  • id
  • name
  • class name
  • tag name
  • link text
  • partial link text
  • xpath
  • css selector

分别对应python webdriver 中的方法为:

find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_element_by_css_selector()

1) id 和 name  定位:

id 和name 是我们最常用的定位方式,因为大多数元素都有这两个属性,而且在对控件的id 和name
命名时一般使其有意义也会取不同的名字。通过这两个属性使我们找一个页面上的属性变得相当容易。

html 代码:


<input id="gs_htif0" class="gsfi" aria-hidden="true" dir="ltr">
<input type="submit" name="btnK" jsaction="sf.chk" value="Google 搜索">
<input type="submit" name="btnI" jsaction="sf.lck" value=" 手气不错">


通过元素中所带的id 和name 属性对元素进行定位:

id=”gs_htif0”
find_element_by_id("gs_htif0")


name=”btnK”
find_element_by_name("btnK")

name=”btnI”
find_element_by_name("btnI")

 

2)tag name 和class name 定位

不是所有的前端开发人员都喜欢为每一个元素添加id 和name 两个属性,但除此之外你一定发现了一
个元素不单单只有id 和name,它还有class 属性;而且每个元素都会有标签。

html代码:
<div id="searchform" class="jhp_big" style="margin-top:-2px">
<form id="tsf" onsubmit="return name="f" method="GET" action="/search">
<input id="kw" class="s_ipt" type="text" name="wd" autocomplete="off">


通过元素中带的class 属性对元素进行定位:


class=”jhp_big”
find_element_by_class_name("jhp_big")


class=”s_ipt”
find_element_by_class_name("s_ipt")


通过tag 标签名对对元素进行定位:


<div>
find_element_by_tag_name("div")


<form>
find_element_by_tag_name("form")


<input>
find_element_by_tag_name("input")

tag name 定位应该是所有定位方式中最不靠谱的一种了,因为在一个页面中具有相同tag name 的元
素极其容易出现。

 

3)link text 与partial link text 定位

有时候需要操作的元素是一个文字链接,那么我们可以通过link text 或partial link text 进行元素
定位。

html代码:
<a href="http://news.baidu.com" name="tj_news">新闻</a>
<a href="http://tieba.baidu.com" name="tj_tieba">贴吧</a>
<a href="http://zhidao.baidu.com" name="tj_zhidao">一个很长的文字连接</a>


通过link text 定位元素:
find_element_by_link_text("新闻")
find_element_by_link_text("贴吧")
find_element_by_link_text("一个很长的文字连接")


通partial link text 也可以定位到上面几个元素:


find_element_by_partial_link_text("新")
find_element_by_partial_link_text("吧")
find_element_by_partial_link_text("一个很长的")


当一个文字连接很长时,我们可以只取其中的一部分,只要取的部分可以唯一标识元素。一般一个页
面上不会出现相同的文件链接,通过文字链接来定位元素也是一种简单有效的定位方式。

 

posted on 2016-12-22 11:38  chenzx0918  阅读(427)  评论(0编辑  收藏  举报

导航