UI自动化测试基础-元素定位之前端

2020-03-08  本文已影响0人  周学习的名字被占了

前言

前端常用定位

层级方式的元素定位

右键点击检查

CSS定位方式

通过获取class属性来定位

body > div.head > div.head_box > div > ul > li:nth-child(2)
#则在console输入
$('body > div.head > div.head_box > div > ul > li:nth-child(2)')
微信开放平台定位2.gif

在console输入并正常返回对应元素之后,通过检查确实是否能够定位到元素,点击返回的输出内容即可

css定位兼容id定位方式

css定位的血缘关系

父子关系:body > div.head > div.head_box > div > ul > li:nth-child(2)

改成爷孙关系的话,就是不要中间的一些层级,如

爷孙关系:body > div.head > div.head_box li:nth-child(2)
body > div.head > div.head_box li:nth-last-child(1)

Xpath定位方式

xpath:/html/body/div[1]/div[2]/div/ul/li[2]

再开到Console选项,在Console输入$x('获取到的元素路径'),如下图中定位资源中心的元素

微信开放平台定位5.gif
//*[@id="kw"]
//input[@class='btn self-btn bg s_btn']

Xpath定位高级玩法

属性的逻辑运算
//input[@class='s_ipt' and @name='wd']
image.png

使用或逻辑

//input[@class='s_ipt' or @name='wd']
属性的模糊匹配
使用contains://input[contains(@class,'s_i')] #匹配所有具备class属性以及class包含"s_i"的元素
使用starts-with://input[starts-with(@class,'s')]#匹配所有具备class属性以及class值以"s"开头的元素
image.png

代码示例

#属性值定位方法
driver.find_element_by_id("testid") #id定位
driver.find_element_by_name("testname") #name定位
driver.find_element_by_class_name("soutu-btn") #class定位
driver.find_element_by_tag_name("input") #tag定位
driver.find_element_by_link_text("点我跳转")#link定位
driver.find_element_by_partial_link_text("忘记") #partial link定位

#层级定位方法
driver.find_element_by_xpath("//input[contains(@class,'s_i')]")#xpath定位
driver.find_element_by_css_selector("body > div.head > div.head_box li:nth-child(2)")

小结

上一篇 下一篇

猜你喜欢

热点阅读