码迷,mamicode.com
首页 > Web开发 > 详细

web自动化测试常用的定位方式有哪些?

时间:2020-02-25 23:17:22      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:表达式   path   操作   一个   pat   属性   log   data   元素定位   


#定位优先选择1、id 2、name
#xpath优先选择属性定位,再选择文本定位

from selenium import webdriver

# 打开对应的浏览器,开启与浏览器之间的会话
#打开的是非常干净的浏览器,没有任何的用户数据
driver=webdriver.Chrome()

# 元素在页面的三种状态
# 1)存在:能够找到
# 2)可见:在浏览器呈现的页面当中,可以看到它的大小。有高和宽。
# 3)可用:特别关注输入框和按钮。
# 1)>2)>3)
driver.get("http://www.baidu.com")


#按照元素本身的特征来找
# 8个元素定位方式:1类:只根据元素的一个特征来找;2类:多种组合方式:xpath,css选择器
#id,name,className,tagName,link,partial_link
#id:固定不变,动态变化的id
ele=driver.find_element_by_id("kw")#找元素,下一步动作:操作。返回对象:WebElement(操作+属性)
# ele.send_keys()


#
#2、 tag_Name标签名称
driver.find_element_by_tag_name("input") #得到一个webElement对象 第一个

driver.find_elements_by_tag_name("input") #得到一个列表。所有匹配的元素,多个webElement对象

#3、class_name class属性
driver.find_element_by_class_name("s-top-wrap")#一个类名
driver.find_elements_by_class_name("")


#4、name属性
driver.find_element_by_name("wd")
driver.find_elements_by_name("wd")


#5.6.只针对a标签
driver.find_element_by_link_text("新闻")#精准匹配
# driver.find_elements_by_link_text("")

# driver.find_elements_by_partial_link_text()
driver.find_element_by_partial_link_text("新")#部分文本匹配





#7、xpath
#页面中ctrl+f 写xpath表达式
"""
//*[@id="kw"]
/html/body/div[2]/div[2]/div[5]/div[1]/div/form/span[1]/input


绝对定位:以/开头 完整路径,绝对下标位置
相对定位:1)相对于谁?参照物 以//开头 确认:有还是没有匹配的元素?
//标签名(一级筛选)

靠元素自己精准定位:
1、//标签名[@属性名称=值] 如://input[@id="kw"] 或者//*[@属性名称=值]

2、多个属性值定位:逻辑运算and or //标签名[@属性名称=值 and @属性名称=值]


3、文本定位:(Css不支持文本定位,只有Xpath定位有)
//标签名[text()=文本值] 如://div[@id="u1"]//a[text()="登录"]


4、包含定位:(Css不支持包含定位,只有Xpath定位有)
//标签名[contains(@属性,值)]
//标签名[contains(text(),值)] 如://h4[contains(text(),"运营")]


靠祖宗定位:
层级定位://div[@id="u1"]//a[@name="tj_login"]


轴定位:
轴运算:ancestor:祖先节点 包括父
parent:父节点 给g
preceding:当前元素节点标签之前的所有节点。(html页面先后顺序)
preceding-sibling:当前元素节点标签之前的所有兄弟节点
following:当前元素节点标签之后的所有节点。(html页面先后顺序)
following-sibling:当前元素节点标签之后的所有兄弟节点

使用语法:已知的元素/轴名称::标签名称[@属性=值]
例如://div//table//td//preceding::td
//dd[@data-val="张芝波"]/flowing-sibling::dd[contains(@class,"batscore")]/span
较多的应用场景:
页面显示为一个表格样式的数据列,需要通过组合来定位元素

//p[@title="2306"]/parent::li/following-sibling::li//p[@class="name"]
"""

web自动化测试常用的定位方式有哪些?

标签:表达式   path   操作   一个   pat   属性   log   data   元素定位   

原文地址:https://www.cnblogs.com/queenz-852/p/12364399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!