UI自动化定位常用实现方法代码示例


Posted in Python onOctober 27, 2020

8大基础定位

  • driver.find_element_by_id() # id定位
  • driver.find_element_by_name() # name定位
  • driver.find_element_by_class_name() # class名称定位
  • driver.find_element_by_tag_name() # 标签定位
  • driver.find_element_by_xpath() # xpath定位
  • driver.find_element_by_css_selector() # css定位
  • driver.find_element_by_link_text() # a标签的文本定位
  • driver.find_element_by_partial_link_text() # a标签的局部文本定位

xpath定位

//*[]:// 相对定位 * 匹配任意标签

第一种:id\class\name\其他属性,精确匹配

driver.find_element_by_xpath("//*[@id='']") # id与id的值
driver.find_element_by_xpath("//*[@class='']") # class和class的值<br data-filtered="filtered">driver.find_element_by_xpath("//*[@name='']")

 # naem和值<br data-filtered="filtered">driver.find_element_by_xpath("//*[@shuxingming='']") # 属性名和值

第二种:模糊匹配\层级\索引\逻辑运算

模糊匹配:

driver.find_element_by_xpath("//*[contains(text(),'测试')]")

# 包含某些字符
driver.find_element_by_xpath("//*[starts-with(text(),'测试')]")

# 以某些字符开头
driver.find_element_by_xpath("//*[ends-with(text(),'测试')]")

# 以某些字符结尾
driver.find_element_by_xpath("//*[matchs(text(),'测试')]")

 # 正则匹配

层级:

driver.find_element_by_xpath("//*[@id='']/p")

索引:

driver.find_element_by_xpath("//*[@id='']/option[0]")

第三种:绝对定位

html/body/heard/div/divdiv/ul/li[2]/a 不推荐

css定位

第一种:id\class\标签名

#:id

.:class

driver.find_element_by_css_selector("#username") #id为username
driver.find_element_by_css_selector(".username") #class为username
driver.find_element_by_css_selector("iframe") #标签名为iframe

 第二种:

索引:

driver.find_element_by_css_selector("selet#nr>option:nth-child(1)") #标签名:nth-child(1)来定位子元素

层级:

driver.find_element_by_css_selector("selet#nr>option") #标签名:nth-child(1)来定位子元素

逻辑运算:

driver.find_element_by_css_selector("input#nr[id=''][class='']") #不用and连接,写在一起即可

定位多组元素

使用 find_elements ,结果为列表,使用下标索引方式取值

names=driver.find_elements_by_name("username")
print names[1]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中管道用法入门实例
Jun 04 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
python3的输入方式及多组输入方法
Oct 17 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
Python应用领域和就业形势分析总结
May 14 Python
Python3安装psycopy2以及遇到问题解决方法
Jul 03 Python
python 寻找离散序列极值点的方法
Jul 10 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
手把手教你将Flask应用封装成Docker服务的实现
Aug 19 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
python通过函数名调用函数的几种场景
Sep 23 Python
基于python获取本地时间并转换时间戳和日期格式
Oct 27 #Python
如何在pycharm中安装第三方包
Oct 27 #Python
Python操控mysql批量插入数据的实现方法
Oct 27 #Python
python 对一幅灰度图像进行直方图均衡化
Oct 27 #Python
Pycharm操作Git及GitHub的步骤详解
Oct 27 #Python
python 爬虫如何正确的使用cookie
Oct 27 #Python
python+requests实现接口测试的完整步骤
Oct 27 #Python
You might like
PHP异步调用socket实现代码
2012/01/12 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
PHP导入导出Excel代码
2015/07/07 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
Js 本页面传值实现代码
2009/05/17 Javascript
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
2009/05/25 Javascript
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
NodeJS安装图文教程
2018/04/19 NodeJs
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
详解Python验证码识别
2016/01/25 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
Python 私有函数的实例详解
2017/09/11 Python
pygame实现简易飞机大战
2018/09/11 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
Python单链表原理与实现方法详解
2020/02/22 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
最好的商品表达自己:Cafepress
2019/09/04 全球购物
教师党员思想汇报
2014/01/06 职场文书
职业生涯规划书前言
2014/04/15 职场文书
家长对老师的评语
2014/04/18 职场文书
入党综合考察材料
2014/06/02 职场文书
模具设计与制造专业求职信
2014/07/19 职场文书
2015年纪委工作总结
2015/05/13 职场文书
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL