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

Posted 星——

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web自动化测试常用的定位方式有哪些?相关的知识,希望对你有一定的参考价值。


#定位优先选择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自动化测试常用的定位方式有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

软件测试常用的工具都有哪些?

一般公司常用的软件测试工具都有哪些

常用的自动化测试工具都有哪些

Appium python自动化测试系列之元素的定位

一般公司常用的软件测试工具都有哪些?

自动化单元测试工具目前常用的都有哪些?