许多不切实际的鼓励,大都是来自酒肉朋友或是远方亲戚。

小编最近在学习Web 自动化测试,所以趁热打铁,整理下相关的知识点,今天主要分享的是八大元素定位方法,无论是移动端还是web端,八大定位方法是共用的。本篇文章还分别提供了两种版本(python、java)的元素定位方式,一种Python版本提供了两种方式,因为在selenium中八种元素定位的底层实现均为

driver.find_element(By.xxx,"value")

1. id

id定位是通过元素的id属性来定位元素,html规定id属性在整个html文档中必须是唯一的。

Python版本

element = driver.find_element_by_id("id值")
或者
element = driver.find_element(By.ID,"id值")

Java版本

element = driver.findElement(By.id("id值"))

2. name

name定位就是根据元素属性来定位,html文档中name的属性值是可以重复的。
如果name有多个属性值,默认使用第一个。

Python版本

element = driver.find_element_by_name("name值")
或者
element = driver.find_element(By.NAME,"name值")

Java版本

element = driver.findElement(By.name("name值"))

3.class_Name

class_Name定位就是根据元素class属性值来定位元素,html通过使用class来定位元素的样式。如果class有多个属性值,默认返回第一个。
Python版本

element = driver.find_element_by_class_name("页面元素的Class属性值")
或者
driver.find_element(By.CLASS_NAME,"页面元素的Class属性值")

Java版本

element = driver.findElement(By.className("页面元素的Class属性值"))

4. tag_name

tag_name 定位是通过标签名来定位,html本质上是由不同的tag组成,每一种标签一般在页面会存在多个,所以不方便进行精准定位,一般很少用。

Python版本

element = driver.find_element_by_tag_name("标签名")
或者
element = driver.find_element(By.TAG_NAME,"标签名")

Java版本

element = driver.findElement(By.tagName("标签名"))

5. link_text

只能定位超链接标签,可以精准定位a标签的全部文本内容。
Python版本

element = driver.find_element_by_link_text("链接的全部文字")
或者
element = driver.find_element(By.LINK_TEXT,"链接的全部文字")

Java版本

element = driver.findElement(By.LinkText("链接的全部文字"))

6. partial_link_text

只能定位超链接标签,输入部分链接文字即可。
Python版本

driver.find_element_by_partial_link_text("链接的部分文字")
或者
element = driver.find_element(By.PARTIAL_LINK_TEXT,"链接的部分文字")

Java版本

element = driver.findElement(By.partialLinkText(("链接的部分文字"))

7. XPath

XPath 为XML Path的简称,是一门在XML文档中查找元素信息的语言,HTML可以看做是XML的一种表现。XPath主要是通过元素的路径来定位,其中,路径又分为绝对路径、相对路径(XML是一种标记语言,用于数据的存储和传递。)
绝对路径:从最外层元素到指定元素之间所有经过元素层级的路径

绝对路径以 html 跟节点开始,使用 / 来分割元素层级;绝对路径对页面结构要求比较严格,万一开发改了路径并且没有告诉你,所以不建议使用。例如:/html/body/div/p[1]/input

相对路径:匹配任意层级的元素,不限制元素的位置。

相对路径以 // 开始
例如,//input 或者//*、//input[@password='密码A']

Tips:

1. 一般使用指定标签名称,不实用*代替,效率比较慢
2. 无论是绝对路径还是相对路径,/ 后面必须为元素的名称或者 *

Python版本

element = driver.find_element_by_xpath("//*[@id='username")
或者
element = driver.find_element(By.XPATH,"//*[@id='username")

Java版本

element = driver.findElement(By.xpath("//*[@id='username"))

8. CSS

css定位就是通过css选择器工具进行定位,css是一种标记语言,用于控制数据的样式。在selenium中推荐使用CSS定位,因为它比Xpath定位速度要快

Python版本

driver.find_element_by_css_selector("[name='password']")
或者
element = driver.find_element(By.CSS_SELECTOR,"[name='password']")

Java版本

element = driver.findElement(By.cssSelector("css定位表达式"))

总结

  1. id、name、class_name:为元素属性定位
  2. tag_name:为元素标签名称
  3. link_text、partial_link_text:为超链接定位(主要是处理a标签)
  4. XPath:为元素路径定位
  5. CSS:为CSS选择器定位
  6. 万能方法:XPath

八大元素定位方法(Python/Java)相关推荐

  1. Python+selenium自动化八大元素定位方法及实例(超详细)

    目录 一.selenium模块中的find_element_by_id方法无法使用 二.Python+selenium自动化八大元素定位方法 使用场景: 1.通过id属性定位:driver.find_ ...

  2. selenium八大元素定位方法

    selenium八大元素定位方法 定位方式一 定位方式二 定位方式一 定位方式二 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与 ...

  3. Selenium-新八大元素定位方法(BY)

    引言:看视频的时候发现好多视频使用的还是老版的元素定位方法,但是对于新版Python来说,已经弃用了之前的元素定位方法,所以在使用的时候会发现有报错,会被一条横线划掉.重新整理了一下目前使用的元素定位 ...

  4. Selenium原理及元素定位方法(JAVA)

    Selenium原理 1.Selenium 1.0(Selenium RC): 早期的Selenium使用的是Javascript注入技术与浏览器打交道,需要Selenium RC启动一个Server ...

  5. python怎么鼠标定位id_Selenium八种元素定位方法(Python)

    前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...

  6. python+selenium自动化(四)__八大元素定位之class_name、tag_name、partial_link_text、css_selector

    selenium八大元素定位(二) 上节讲了4种定位ID.NAME.LINK_TEXT.XPATH,这节继续学习剩下的4种元素定位方式 1.通过class_name定位 我们需定位上图中的" ...

  7. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  8. python selenium定位元素方法_[原创] python selenium 元素定位方法封装

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 写好了公用的调用类,接下来就按照pageobject的设计模式写一下基本的元素定位方法,此处我们需要对python的方法传参有所了解,没有自信的同学可以返 ...

  9. python+selenium笔记(一):元素定位方法

    一.环境准备: 1.浏览器选择:Firefox 2.安装插件:Firebug和FirePath(设置>附加组件>搜索:输入插件名称>下载安装后重启浏览器) 3.安装完成后,页面右上角 ...

最新文章

  1. c++学习书籍推荐《Visual C++2008入门经典》下载
  2. 小米面试题:单词搜索
  3. 李开复老师:微博改变一切
  4. ClassPool CtClass浅析
  5. Unity中使用Attribute
  6. Bell数的生成函数推导
  7. python调用远程的python文件_python 实现调用远程接口
  8. 剑指offer之二叉树的下一个结点
  9. Python 异常后变量的赋值
  10. 计算机职称考试模拟试题及答案,2018职称计算机考试WindowsXP模拟试题及答案|计算机一级模拟题软件...
  11. linux 安装docker
  12. 公司盘点员工,不上班的员工要给钱吗?
  13. HNOI2019爆零记
  14. 效仿大众?宝马全新平台战略:简化硬件,强化软件差异化
  15. ARM7、ARM9、ARM11、ARM-Cortex的关系
  16. Springboot定时任务【多线程处理】
  17. 条件随机场(Conditional random field,CRF)
  18. 海盗比酒量--蓝桥杯
  19. html 条纹背景,CSS3 一组条纹背景图案
  20. 深度长文:AMD的崛起、衰落与复兴

热门文章

  1. Ubuntu 16.04 取消搜狗输入法 ctrl+space 快捷键
  2. dataframe计算相关系数矩阵
  3. knockout简介
  4. 《OS、Network、Kernel》PDF资源汇总
  5. Unity UGUI血条制作详细教程
  6. 【Angular中的HTTP请求】- 拦截器 HttpInterceptor 详解
  7. DTAS 3D仿真计算结果解释
  8. Python语言实现信用评分卡建模分析
  9. 基础html交代选择器,html/css基础(html常用标签与css选择器)-2019年1月14号22时45分
  10. ubuntu下 U盘盘符重命名修改方法