环境:python3.8

更新中~~

一、八大元素定位方法:

1、id

id属性,确保id唯一。

以百度输入框为例,打开Baidu,按F12,点击左上角箭头点击输入框,就能看到对应的HTML源码,<input ..> 标签中的 id就是id属性

代码实现:driver.find_element(By.ID, "kw")

2、XPATH

用得比较多的方法.

F12后再Ctrl+F 输入XPATH值能检索结果是否唯一、是否定位正确

  • xpath绝对定位:严格按照元素顺序,过于依赖当前页面元素结构,不稳定
  • xpath相对定位:灵活、用法多、建议用,根据元素本身特征查找、不用按特定顺序.包含以下这些方法:

1).属性定位: //标签名[@属性名=属性值]

2).多个属性组合:and or //标签名[@属性名=属性值 and @属性名=属性值]

3).文本定位://标签名[text()="文本"]

百度例子://span[text()="女儿给爸爸洗脚拍照后转身就走"]

4).文本与属性值组合: //标签名[text()="已签到" and @class="tip"]

5).模糊匹配-包含:

//标签名[contains(text(),"文本")]

//标签名[contains(text(),"文本") and @属性值=属性值]

百度例子://span[contains(text(),"女儿给爸爸洗脚拍照后转身就走") and @class="title-content-title"]

6). * (尽量少用) 模糊匹配

//*[text()="签到"]

//span[@*="member"]

//*[@*="member"]

       7).层级定位 :

7.1. 通过父或者祖先找子元素 (经常用到),通过自己本身的特征无法唯一定位自己的时用层级定位。格式:

//父标签[@id="u1"]//子标签[@name="tj_login"]

这里用双斜杠比较灵活,单斜杠没那么灵活

       7.2.轴定位:通过子元素找祖先元素

语法: 已知元素//...//../轴名称::标签名[@属性名=“属性值” and @属性名=“属性值”]//..

4种轴名称:

parent:父元素 -- 通过子找父 (找到子元素再父)

//子标签名[@属性名="属性值"]/parent::父标签[@属性名=“属性值”]

//子标签名[@属性名="属性值"]/parent::父标签*

ancestor: 通过子找祖先元素

//子标签名[@属性名="属性值"]//子元素标签/ancestor::父标签[@属性名=“属性值”]

preceding-sibling: 通过我 找姐姐/哥哥元素(同一父元素,排在你前面的)

//标签名[@属性名="属性值"]//标签/preceding-sibling::标签[@属性名=“属性值”]

following-sibling: 通过哥哥姐姐找弟弟

//标签名[@属性名="属性值"]//标签/following-sibling::标签[@属性名=“属性值”]

3、link_text

超链接文本, a标签之间的文本

<a>文本</a>

4、partial_link_text

部分超链接文本。

5、name

name属性

6、tag_name

指的是 <> 尖括号中的标签名

7、class_name

class属性

8、css_selector

查看源码实现:(by.py)

二、实现

1. 找单个元素 driver.find_element() 结果是字符串

2. 找多个元素driver.find_elements() 结果 是列表, 找到后再根据下标再定位

元素定位没问题,运行脚本仍然报错提示找不到元素原因:

1、元素在iframe中,这个时候要switch_to.frame,切换iframe

2、添加了智能等待, 还是提示找不到元素。driver.implicitly_wait()

这个时候加个硬性等待即可。 time.sleep(1)

UI自动化测试之元素定位相关推荐

  1. Web UI自动化测试之元素定位

    目前,在自动化测试的实际应用中,接口自动化测试被广泛使用,但UI自动化测试也并不会被替代.让我们看看二者的对比: 接口自动化测试是跳过前端界面直接对服务端的测试,执行效率和覆盖率更高,维护成本更低,整 ...

  2. UI自动化测试之元素定位方法

    Python语言Selenium库UI自动化测试(一)元素定位方法 简介 当我们日常搭建自动化测试框架时,用Python调用浏览器时,通常有Requests库.Selenium库 这两个库是进行爬虫或 ...

  3. UI自动化之元素定位(xpath、css)

    很早之前就已经写过自动化了,不过点着功能久了就会容易忘记元素定位,尤其是xpath和css定位,所以就花点时间做下总结收集. xpath有两种定位: 一.绝对路径(不推荐使用,除非已经使用了所有方式仍 ...

  4. Appium移动端自动化测试之元素定位(三)

    1.name定位 driver.find_element_by_id('com.shanjian.originaldesign:id/edit_Tel').send_keys('15817252876 ...

  5. Python+Appium自动化测试之toast定位

    目录 一. 前言 二. 环境 三. toast定位准备与定位方法 1. 准备 2. 定位方法 四. 示例代码 一. 前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位 ...

  6. appium自动化,appium元素定位

    appium自动化,appium元素定位 Appium是一款综合性软件,可让您在本地.移动或混合应用程序上执行复杂的测试. 简而言之,appium自动化框架允许您在不需要 SDK 或在每次测试会话后重 ...

  7. [免费视频教程]UI自动化测试之Jenkins配置教程

    [免费视频教程]UI自动化测试之Jenkins配置教程 image 前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家. 背景: 团队下半年的目标之一是实现自动化测试 ...

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

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

  9. selenium~初识自动化测试之元素的定位、对象的操作、浏览器的操作、键盘事件、鼠标事件

    文章目录 准备工作 元素定位 操作测试对象 鼠标点击与键盘输入 智能等待.submit提交表单.获得text文本元素 打印title和url 浏览器的操作 键盘事件 鼠标事件 准备工作 最好安装好火狐 ...

  10. 自动化测试之元素的定位

    目录 一.元素定位 1.根据id属性进行定位(id是唯一的) 2.name属性进行定位 3.tag name(标签名) 定位和class name(标签中的class属性)定位 (1)使用class ...

最新文章

  1. python pandas DataFrame 转置
  2. 汇编中的.section命令及汇编语言程序都至少声明的3个段
  3. 7款外观迷人的HTML5/CSS3 3D特效按钮特效
  4. select fd_set
  5. asp.net mysql 读写分离_[ASP.net教程]SqlSugar ORM已经支持读写分离
  6. 68.vivado与modelsim的关联以及器件库编译
  7. 华为hcip认证题库在哪找?HCIP如何考取?
  8. 关于禁用Cookie的问题以及解决办法
  9. OKHTTP系列(九)---http请求头(header)作用
  10. 图片作为背景的相关方法
  11. html中表格边框好看的样式,table完美css样式 table表格边框样式
  12. BATCH 批处理(一)
  13. php 获取视频首帧,PHP获取视频的第一帧与时长
  14. Sketch:无损放大像素画
  15. Java项目:田径运动会管理系统(java+SpringBoot+Thymeleaf+HTML+maven+mysql)
  16. 基于Web的校园互助平台设计与实现
  17. dhcp服务器增加vlan,简谈多VLAN DHCP服务设置
  18. 设计的魔法-动效设计
  19. Excel日期转换为大写中文数字
  20. 简述java开发环境的建立过程_java开发环境的完整搭建过程

热门文章

  1. linux docker运行exe,在Windows上的Bash上运行Docker容器
  2. ExcelJS 将JSON数组转换成为Excel文件 / JSON转换成为XLSX / 网页导出Excel表格
  3. RS编码过程通俗理解
  4. 专为存储设计的LRC编码
  5. linux下keytool生成证书_keytool命令
  6. log4cpp 详解及使用操作
  7. ipixsoft swf to html5 converter,iPixSoft SWF to Video Converter
  8. 高科技公司的 CEO 要写代码吗?
  9. maven 压缩html,使用YUI Compressor Maven插件压缩 js,css 输出war包
  10. 大华平台linux密码忘记,大华乐橙sn1(海思hi3798c)刷机