selenium八大元素定位方法大全

一、元素定位方法
   1.1 tag_name (了解)
      说明:是通过元素的标签名称来定位,标签名(查看元素时尖括号(<)紧挨着的单词或字母就是标签名)
           (标签名也就是元素名)
      方法:driver.find_element_by_tag_name("标签名")
      注意:
         1. 如果页面中存在多个相同标签,默认返回第一个标签元素。
         
   1.2 link_text 
      说明:定位超链接标签
      方法:driver.find_element_by_link_text()
      注意:
         1. link_text:只能使用精准匹配(a标签的全部文本内容)
   1.3 partial_link_text【推荐】
      说明:定位超链接标签
      方法:driver.find_element_by_partial_link_text()
      注意: 
         1. 可以使用精准或模糊匹配,如果使用模糊匹配最好使用能代表唯一的关键词
         2. 如果有多个值,默认返回第一个值
      
二、Xpath 和 Css 定位
   2.1 为什么使用Xpath和css定位?
      1. id,name,class:依赖于元素这三个对应的属性,如果元素没有以上三个属性,定位方法不能使用。
      2. link_text,partial_link_text:只适合超链接
      3. tag_name:只能找页面唯一元素,或者 页面中多个相同元素中的第一个元素
      
   2.2 什么是Xpath定位?
      说明:基于元素的路径
      
   2.3 xpath介绍
      1. xpath是XML  Path简称;
         (xml是一种标记语言,焦点:数据存储于传递(配置文件) 后缀.XML)
         
   2.4 Xpath常用的定位策略:
      1. 路径
         1). 绝对路径:
               语法:以单斜杠开头逐级开始编写,不能跳级。如:/html/body/div/p[1]/input
         2). 相对路径
               语法:以双斜杠开头,双斜杠后边跟元素名称,不知元素名称可以使用*代替。 
                  如: //input 
                       //*
      2. 路径结合属性
            语法:在Xpath中,所有的属性必须使用@符号修饰 如://*[@id='id值']
      3. 路径结合逻辑(多个属性)
            语法://*[@id="id值" and @属性='属性值']
      4. 路径结合层级
            语法://*[@id='父级id属性值']/input
            
      提示:
         1. 一般见识使用指定标签名称,不使用*代替,效率比较慢。
         2. 无论是绝对路径和相对路径,/后面必须为元素的名称或者*
         3. 扩展:在工作中,如果能使用相对路径绝对不使用绝对路径。
         
   2.5 Xpath扩展
      1. //*[text()='XXX'] # 定位文本值等于XXX的元素  
         提示:一般适合 p标签,a标签 
      2. //*[contains(@属性,'xxx')] # 定位属性包含xxx的元素 【重点】
         提示:contains为关键字,不可更改。 
      3. //*[starts-with(@属性,'xxx')] # 定位属性以xxx开头的元素
         提示:starts-with为关键字不可更改

三、CSS定位
   说明: 
      1. CSS一种标记语言,焦点:数据的样式。控制元素的显示样式,就必须先找到元素,在css标记语言中找元素使用css选择器;
      2. css定位就是通过css选择器工具进行定位。
      3. 极力推荐使用,查找元素的效率比xpath高,语法比xpath更简单。
   方法:
      driver.find_element_by_css_selector()
   常用测试略:
      1. id 选择器
            前提:元素是必须有id属性
            语法:#id  如:#passwordA
      2. class 选择器
            前提:元素是必须有class属性
            语法:.class  如:.telA
      3. 元素选择器
            语法:element  如:input
      4. 属性选择器
            语法:[属性名=属性值]
      5. 层级选择器
            语法: 
               1. p>input 
               2. p input 
            提示:>与空格的区别,大于号必须为子元素,空格则不用。
            
   扩展: 
      1. [属性^='开头的字母'] # 获取指定属性以指定字母开头的元素
      2. [属性$='结束的字母'] # 获取指定属性以指定字母结束的元素
      3. [属性*='包含的字母'] # 获取指定属性包含指定字母的元素
      
      复制xpath:/html/body/form/div/fieldset/p[1]/input
      复制最简://*[@id="userA"]
      复制CSS路径:html body form div#zc fieldset p#p1 input#userA
      
      提示: 
         1. 虽然借助工具可以快速生成xpath路径和css语法,但是前期不建议使用。
         2. 工具在智能,没有人智能。
         
五、定位一组元素
   方法:driver.find_elements_by_xxx()
   返回结果:类型为列表,要对列表进行访问和操作必须指定下标或进行遍历,[下标从0开始]
   
   
六、扩展8种元素定位的底层实现
   方式:driver.find_element(By.xxx, 'value')
   参数说明:
      By.xxx :为By类的类型 如:By.ID
      value: 元素的定位值 如: "userA"
      
   By类:需要导包 位置: from selenium.webdriver.common.by import By
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Guff_hys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值