Web元素定位方法_8大元素+xpath定位

元素定位,顾名思义就是根据元素的特征,来确认元素的条件,然后根据条件去找到唯一的那个元素。

一、八大元素

1、只根据元素的一个属性来找元素(6大)

1)id、name、class_name(只支持一个class值)、tag_name

2)只针对a元素

link_text、partial_link_text

示例:

 1 # class - 只能是class属性当中的一个值
 2 driver.find_element_by_class_name("s_ipt")   # 1个元素 - 匹配到的第1个元素
 3 driver.find_elements_by_class_name("s_ipt")   # 所有匹配多个元素 - 列表
 4
 5 # name
 6 driver.find_element_by_name("wd")
 7 driver.find_elements_by_name("wd")
 8 #
 9 #  tag
10 driver.find_element_by_tag_name("input")
11 driver.find_elements_by_tag_name("input")
12 #
13 #  link_text
14 driver.find_element_by_link_text("地图")
15 driver.find_elements_by_link_text("地图")
16 #
17 # # partial_link_text
18 driver.find_element_by_partial_link_text("hao")
19 driver.find_elements_by_partial_link_text("hao")

2、多个属性组合来找元素或者通过其它的关系来找元素(2大)-

1)绝对定位: 以/开头, 父/子

根据继承顺序、同级位置顺序一层一层的找,与在windows文件目录,需要一层一层的打开找到对应的文件(逐层打开)。

示例:

/html/body/div[2]/div[3]/div/div/div[2]/div[3]/i[1]

/*[@id="number-attend"]/div[2]/div[3]/i[1]

//div[@id="number-attend"]//i[@class="ing

2)相对定位(Xpath定位):靠自己的特征来定位,自己唯一的标识,以//开头

二、Xpath定位

(在当前需定位的页面按F12下elements当中,按Ctrl +F,弹出表达式确认框)

1、根据元素的唯一属性(标识来定位)

表达式格式://标签名[@属性=值]

示例://i[@class="ing"]

//*[@*="ing"]

2、文本匹配

表达式格式://标签名[text()=值]

示例://a[text()="公告"]

3、包含

表达式格式://标签名[contains(@属性/text(),值)]

示例://a[contains(@href,"/Notify/index/courseid/")]

//a[contains(text(),"公告")]

4、辑运算 来组合更多的元素特征。 and or

表达式格式:

1)//标签名[@属性=值 and @属性=值 and contains(@属性/text(),值) and text()=值]
2)//标签名[@属性=值 or @属性=值]

示例://a[text()="公告" and contains(@href,"/Notify/index/courseid/")]

5、层级定位://一级元素//二级元素//......

示例://div[@id="number-attend"]//i[@class="ing"]

6、轴定位: 关系 - 分析元素之间的关系,页面的结构。

1)通过兄弟姐妹找到自己

2)通过后代元素来找到 祖先元素

轴运算:

ancestor:祖先结点 包括父

parent:父结点 给g

preceding: 当前元素节点标签之前的所有结点。(html页面先后顺序)

preceding-sibling: 当前元素节点标签之前的所有兄弟结点

following: 当前元素节点标签之后的所有结点。(html页面先后顺序)

following-sibling:当前元素节点标签之后的所有兄弟结点

使用语法:

已知的元素/轴名称::标签名称[@属性=值]

例://div//table//td//preceding::td

//p[@title="余粮"]/preceding-sibling::p[@class="stuno"]

//p[@title=”余粮"]/parent::*/following-sibling::li//p[@class="name"]

1 # 直接写By,按Alt+Enter进行导入即可
2 from selenium.webdriver.common.by import By
3 element = driver.find_element(By.XPATH,‘//p[@title="余粮"]/preceding-sibling::p[@class="stuno"]‘)4 element_list = driver.find_elements(By.XPATH,‘//p[@title="余粮"]/preceding-sibling::p[@class="stuno"]‘)

原文地址:https://www.cnblogs.com/forayepy/p/12425635.html

时间: 2024-11-08 22:39:52

Web元素定位方法_8大元素+xpath定位的相关文章

web自动化测试中的八大定位方法,推荐使用xpath

web自动化测试中的定位方法,常用相对路径来定位,推荐使用 xpath 定位 在百度进行定位 # 引入库 from selenium import webdriver # 打开谷歌浏览器,建立会话.启动Chromedriver.exe 打开Chrome driver = webdriver.Chrome() # 启动谷歌浏览器 # driver = webdriver.Firefox() # 启动火狐浏览器 # driver = webdriver.Ie() # 启动IE浏览器 # 访问百度首页

selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(治疗selenium各种定位不到,点击不了的并发症)

[第一部分]开篇:先认识Xpath的4种定位方法 跟你说,你总是靠那个firebug,chrome的F12啥的右击复制xpath绝对总有一天踩着地雷炸的你死活定位不到,这个时候就需要自己学会动手写xpath,人脑总比电脑聪明,开始把xpath语法给我学起来! 第1种方法:通过绝对路径做定位(相信大家不会使用这种方式) By.xpath("html/body/div/form/input") By.xpath("//input") 第2种方法:通过元素索引定位 By.

Web端自动化元素定位方法

版本迭代周期越来越短?需求越来越多?测试工作量越来越大?怎么保证质量?怎么保证上线周期? 随着互联网的快速发展,越来越多的测试人员遇到上述所说的问题.如何实现既提高测试效率和覆盖率,又节约测试成本,是每一个企业追求的目标.为了解决上述的问题,越来越多的公司开始加入自动化测试.以下是一些常用的定位方法介绍 一.常用方法 1)通过class属性定位 driver.findElement(By.className("spread")).sendKeys("你好"); 2)

元素定位-XPATH定位方法总结

1.Xpath定位方法探讨 xpath是比较常用的一种定位元素的方式,因为它很方便,缺点是,消耗系统性能.如果Xpath使用的比较好,几乎可以定位到任何页面元素,而且受页面变化影响较小. 1.1.什么是XPATH: XPath (XML Path Language) 是一门在 HTML文档中查找信息的语言,可用来在 HTML文档中对元素和属性进行遍历. 详细使用方法可见 W3School官方文档:http://www.w3school.com.cn/xpath/index.asp 1.2.XPA

sellenium页面元素的定位方法

1.findElements函数可用于多个元素定位 (1)使用ID定位:driver.findElement(By.id("ID值")); 例:HTML代码: 定位语句代码:WebElement username=driver.findElement(By.id("username")); WebElement password=driver.findElement(By.id("password"));  WebElement subimit=

appium -- Xpath定位元素

如文章<Appium基于安卓的各种FindElement的控件定位方法实践>所述,Appium拥有众多获取控件的方法.其中一种就是根据控件所在页面的XPATH来定位控件. 本文就是尝试通过自己的试验来尝试对Appium如何用xpath来定位控件做一个阐述,当中如有不对的地方敬请大家指出. 1. 背景 本文尝试使用的试验对象是SDK自带的NotePad应用实例,假设已经有两个Notes分别是“note1”和“note2”添加到Notepad上面,我们要做的就是尝试用xpath的方法来定位“not

selenium自动化测试——常见的八种元素定位方法

selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位:find_element_by_tag_name() 4.通过 class 定位:find_element_by_class_name() 5.通过 css 定位:find_element_by_css_selector() 6.通过 link 定位:find_element_by_link_tex

Appium+python移动自动化测试(四)--Monitor/uiautomatorviewer工具及元素定位方法

写在前面: 本文介绍识别元素的工具和元素的定位方法,识别元素的工具主要有uiautomator和monitor,以及Appium Inspector(Windows下小编在1.7.0之后版本可使用,1.4.16版本不行),本系列教程用的appium1.4.16本文,故暂不介绍Appium Inspector. 一.常用的识别元素的工具介绍 启动uiautomatorviewer.bat/monitor.bat.打开sdk/tools目录找到uiautomatorviewer.bat/monito

selenium 总结篇,常见方法和页面元素的操作

今天,总结一下selenium怎么操作web页面常见的元素. 主要有: 上传 alter dialog prompt dialog confirm dialog select list radio box input box checkBox 测试页面如下: 1 <html> 2 <head> 3 <title>selenium处理基本页面元素</title> 4 <style type="text/css"> 5 table