Web自动化测试学习(一)☞元素定位

id定位
find_element_by_id()
例如:
find_element_by_id(“companyToken”)

name定位
find_element_by_name()
例如:
find_element_by_name(“compToken”)

tag定位(html通过tag来定义不同的页面元素,如一般用来定义输入框,标签用来定义超链接等
find_element_by_tag_name()
例如:
find_element_by_tag_name(“input”)

class定位(html规定用class来指定元素的类名)
find_element_by_class_name()
例如:
find_element_by_class_name(“form-control the-padding-left”)

link_text定位(专门用来定义文本链接)
find_element_by_link_text()
例如:
find_element_by_link_text(“新闻”)

partial link 定位(对link定位的补充,当文字链接比较长时,可只选取其中一部分文字进行定位,只要这部分文字可以唯一标识链接即可)
find_element_by_partial_link_text()
例如:
find_element_by_partial_link_text(“闻”)

Xpath定位————————find_element_by_xpath()
在xml文档中,xpath是一种定位元素的语言,因为html可以看做是xml的一种实现,所以Webdriver提供了这种在web定位元素的方法。

1、绝对路径定位
用标签名的层级关系来简单直观的写出元素的绝对路径
例如智慧外勤登陆界面找到企业编号输入框:
find_element_by_xpath("/html/body/div/div[2]/div/div/div/form/fieldset/label/span/input")
div[2]表示当前层级下第二个div标签。

2、利用元素属性定位
例如:
find_element_by_xpath("//input[@id=‘companyToken’]")
注释: //input表示当前页面某个input标签,[@id=‘id值’]表示这个属性id值为id值
name和class也一样
如果不想指定标签名,则可用()代替,例如:
find_element_by_xpath("//[@name=‘username’]")

3、层级与属性结合定位
当出现某个元素本身没有可以唯一标识这个元素的属性值,则可查找其上一级元素。如果他上一级的元素有唯一标识的属性值,就可以拿来用
例如,假如企业账号输入框无唯一标识的属性,则可以找其上一级span,如果也没有就继续找上一级,直到有为止:
find_element_by_xpath("//form[@id=‘loginForm’]/fieldset/label/span/input")

4、逻辑运算符
如果一个属性不能唯一区分一个元素,则可以用逻辑运算符连接多个属性来查找元素
例如:
find_element_by_xpath("//input[@id=‘companyToken’ and @name=‘companyToken’]")

5、使用contains方法
contains方法用于匹配一个属性中包含的字符串。例如智慧外勤,企业账号输入框的class=“form-control the-padding-left”
find_element_by_xpath("//input[@class=‘from-control’]")

6、使用text()方法
text()方法用于匹配显示文本信息。例如前面link text定位的文字链接
find_element_by_xpath("//a[text(),‘新闻’]")

contains方法和text方法也可同时使用,例如
find_element_by_xpath("//a[contains(taxt(),‘闻’)]")

CSS_selector定位——————————find_element_by_css_selector
CSS是一种语言,用来描述HTML和XML文档的表现。CSS选择器可以较为灵活的选择控件的任意属性,一般情况下,CSS定位速度比Xpath要快。
CSS选择器的常见用法
(1).class——.A——class选择器,选择class=“A"的所有元素
(2)#id——#username——id选择器,选择id=“username"的所有元素
(3)————选择所有元素
(4)element——p——选择所有

元素
(5)element>element——div>input——选择父元素为

的所有元素
(6)element+element——div+input——选择同一级中紧接在
后的所有元素
(7)[attribute=value]——[target=_blank]——选择 target=”_blank” 的所有元素
1、通过class定位
find_element_by_css_selector(".类名")
2、通过id定位
find_element_by_css_selector("#id名")
3、通过标签名定位
find_element_by_css_selector(“标签名”)
4、通过标签层级关系定位
find_element_by_css_selector(“父标签名>要定位的标签名也是子标签名”)
5、通过属性定位
find_element_by_css_selector("[属性名=‘属性值’]")
6、组合定位
比如我们要定位的属性是input,他的元素class属性为s_ipt,且他有一个父元素,标签名为span。父元素还有父元素,标签名为form,class属性为fm。
可以:find_element_by_css_selector(“form.fm > span > input.s_ipt”)
或者:find_element_by_css_selector(“form#form > span > input#kw”)
7、更多定位用法
查找class属性包含“s_ipt_w”字符串的元素
find_element_by_css_selector("[class*=s_ipt_w]")
查找class属性以“bg”字符串开头的元素
find_element_by_css_selector("[class^=bg]")
查找class属性以“warp”字符串结尾的元素
find_element_by_css_selector("[class$=warp]")
查找form标签下第2个input标签的元素
find_element_by_css_selector(“form > input:nth-child(2)”)

更多用法参考:W3CSchool网站

By定位元素————————find_element(By.属性名,“属性值”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值