自动化的8种定位方式

  • 1、id属性
  • 2、name属性
  • 3、class属性
  • 4、标签名
  • 5 6 、链接元素 link_text #完全匹配 #模糊匹配
  • 7 8、 xpath =ZZ 易懂 css = 难懂
    • xpath定位
    • 绝对定位 严格按照路径和位置来定位 以/开头 父/子关系
    • 相对定位 参照物:整个html 只要在整个页面中,找到符合属性的元素,以//开头
    • 7.1 //标签名[@属性名="属性值"] //input[@id="kw"] *匹配所有 //*[@id="kw"]
    • 7.2 逻辑运算 and or //标签名[@属性名="属性值" and @属性名="属性值"] //input[@id="kw" and @name="wd"]
    • 7.3 文本定位 //标签名[text()="文本内容"] #文本内容完全匹配 //a[text()="新闻"]
    • 7.4 部分匹配 文本内容/属性值 contains
    • 7.5.1 层级定位 第一种方式 //div[@id="ul"]//a[@name="tj_login"]
    • 7.5.2 层级定位 - 轴定位 #表达式 /轴定位名称::标签名[属性表达]
      • 轴名称
      • 使用语法
      • 例子

8种 定位方式
6种 是通过单一属性来定位的
2种 是组合各种属性来定位 + 结合各种关系来定位

1、id属性

ele = driver.find_element_by_id(“kw”) #找到id = kw的一个元素
#ele1= driver.find_elements_by_id(“kw”) #找到id = kw的所有的元素,返回一个列表
#print(ele.tag_name)
#print(ele.get_attribute(“class”))

2、name属性

driver.find_element_by_name(“phone”) #找一个单一的元素,从上放下,找到符合条件的第一个
driver.find_elements_by_name(“phone”) #找到所有匹配的元素,返回一个列表

3、class属性

driver.find_element_by_class_name()
driver.find_elements_by_class_name()

4、标签名

driver.find_element_by_tag_name(“lgfff”)
driver.find_elements_by_tag_name(“lgfff”)

5 6 、链接元素 link_text #完全匹配 #模糊匹配

driver.find_element_by_link_text(“更多产品”) #完全匹配
driver.find_elements_by_partial_link_text(“更多”) #模糊匹配

7 8、 xpath =ZZ 易懂 css = 难懂

xpath定位

driver.find_elements_by_xpath()

绝对定位 严格按照路径和位置来定位 以/开头 父/子关系

/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input

相对定位 参照物:整个html 只要在整个页面中,找到符合属性的元素,以//开头

//*[@id=“kw”]

7.1 //标签名[@属性名=“属性值”] //input[@id=“kw”] 匹配所有 //[@id=“kw”]

driver.find_elements_by_xpath("//input[@id=“kw”]")

7.2 逻辑运算 and or //标签名[@属性名=“属性值” and @属性名=“属性值”] //input[@id=“kw” and @name=“wd”]

driver.find_elements_by_xpath("//input[@id=“kw” and @name=“wd”]")

7.3 文本定位 //标签名[text()=“文本内容”] #文本内容完全匹配 //a[text()=“新闻”]

driver.find_elements_by_xpath("//a[text()=“新闻”]")

7.4 部分匹配 文本内容/属性值 contains

//标签名[contains(text(),“部分文本内容”)] #文本内容太长 //[contains(text(),“我的”)]
//标签名[contains(@属性名,“部分属性值”)] #id(不变动+变动 如2020dhskafhald) #class 多个 //[contains(@id,“2020”)]
driver.find_elements_by_xpath("//[contains(text(),“我的”)])

7.5.1 层级定位 第一种方式 //div[@id=“ul”]//a[@name=“tj_login”]

后一个条件,是在前一个得到的结果之内去搜索的。//条件1//条件2…

7.5.2 层级定位 - 轴定位 #表达式 /轴定位名称::标签名[属性表达]

轴名称

ancestor:祖先节点,包含父节点和祖父节点
parent:父结点
preceding_sibling:当前节点标签前的所有兄弟节点
following_sibling:当前节点标签后的所有兄弟节点
following:当前节点标签后的所有节点

使用语法

/轴名称::节点名称 注:轴定位最好用单斜杠

例子

//span[text()=“哈哈”]/parent::div/following_sibling::div[@class=“attend_data_state”]//img

自动化的8种定位方式相关推荐

  1. android中几种定位方式详解

    目录 前言: 1.GPS定位 2.NETWORK定位 3.AGPS定位 4.基站定位 5.WIFI定位 6.混合定位 目前,移动端大致通过三种方式来进行设备定位:GPS.基站.wifi.本文就详细的讲 ...

  2. python自动化测试xpath_selenium自动化测试:5.xpath八种定位方式

    0.前言 如果可以的话,请先关注(专栏和账号),然后点赞和收藏,最后学习和进步.你的支持是我继续写下去的最大动力,个人定当倾囊而送,不负众望.谢谢!!! 1.前提 基于win10专业版64位系统+64 ...

  3. ios wifi 定位_iOS中三种定位方式

    手机基站定位 原理 每个手机基站都有一个标识符,iPhone或3G iPad可以搜集周围所有收到信号的基站和它们的标识符,通过联网发送到苹果云端服务器,再由服务器根据这些基站的的位置信息查询并计算出当 ...

  4. 百度地图三种定位方式测试(高精度、低功耗、仅用设备)

    百度地图三种定位方式测试(高精度.低功耗.仅用设备) Android定位SDK自v7.0版本起,按照附加功能不同,向开发者提供了四种不同类型的定位开发包,可根据不同需求,自有选择所需类型的开发包使用. ...

  5. Selenium八种定位方式

    八种定位方式分别是:id.name.class name.tag name .link text.partial link textxpath.css selector. 元素标签或者元素属性:id. ...

  6. CSS中常用的几种定位方式

    定位的基本语法: position:方式 top: 多少px; right: 多少px; left: 多少px; bottom: 多少px; 有常用的几种方式,如下: 第一种:相对定位 relativ ...

  7. 【CSS笔记】CSS布局之五种定位方式(静态、相对、绝对、固定、粘性)

    目录 一.CSS定位布局 1.1.static静态定位 1.2.relative相对定位 1.3.fixed固定定位 1.4.absolute绝对定位 (1)默认绝对定位参考点 (2)设置绝对定位参考 ...

  8. GPS、WiFi、基站、蓝牙(iBeacon)、AGPS几种定位方式总结

    1.GPS GPS(Global Positioning System)即全球定位系统,它是由美国研究的一种定位方式,特点是:不需要SIM卡,不需要连接网络,只要在户外,基本上就能随时随地的准确定位. ...

  9. CSS的四种定位方式

    CSS的四种定位方式 1.静态定位: 设置方式为position: static;静态定位的盒子是标准流状态,用于取消定位.静态定位的盒子处于网页的最底层,并且top.left.bottom.righ ...

最新文章

  1. 深入了解java线程池
  2. OmniPeek与Sniffer比较区别
  3. windows下安装php性能分析工具XHProf(windows版本)
  4. Maven仓库搭建(一):一台HTTP服务器即可(Tomcat、Apache或Nginx)
  5. 依赖: ros-melodic-desktop 但是它将不会被安装_npm系列之依赖管理
  6. Hadoop sqoop
  7. 机器视觉的典型应用及领域分析
  8. SDL2源代码分析5:更新纹理(SDL_UpdateTexture())
  9. 微信小程序 java社区团购系统springboot
  10. Aiml中文包含英文(字母,特殊符号)识别问题的解决
  11. 使用 vue 开发一个简单的滑块拖动验证码
  12. 【工作记录】VRLe工作总结
  13. Mac剪切快捷键使用技巧
  14. 【密码学】Java课设-文件加密系统(适用于任何文件)
  15. Java应用CPU占用过高问题排查
  16. 华为浏览器html页样式没了,返回键没有了怎么办 华为手机没有返回键了怎么处理...
  17. JPA是什么?JPA怎么应用?为什么要用JPA
  18. 关于加密解密有哪些你需要知道知识?一篇文章告诉你
  19. 网络安全之蜜罐是什么?有哪些不同的类型?
  20. 红米note电信版_标注2014910_官方线刷包_救砖包_解账户锁

热门文章

  1. 如何快速统计Excel单元格中有几个数字
  2. 报错:RuntimeError: expected scalar type Double but found Float
  3. 记一次macbook pro A1708更换电池的经历
  4. 真子集的三种表示方法的区别(⊂与⫋ 与⊊)
  5. c语言程序(十八)——迭代计算
  6. 【后厂村】打工人的愿望
  7. linux speedtest-cli工具测试网络带宽、测试网速(下载速度、上传速度和延迟等信息)
  8. iOS 字体转换
  9. 宣传册打印选择哪种纸张
  10. 2021年 CISCN writeup