关于UI自动化中元素定位常用方法的个人总结
1、如果目标元素有id属性,优先使用id定位;
2、元素locator尽可能保证简洁,考虑locator中路径的变化频率,尽量减少后期更新和维护成本;
3、使用xpath时,不要一味的使用‘/’逐层进行选择;合理使用‘/’和‘//’,能简化表达式;
4、尽量使用函数和运算符,如contains(),text(),position()等;运算符包括算数运算符或逻辑运算符等;
以下举例xpath常用语法:
1) xpath=//img[@alt='The image alt text']
2) xpath=//table[@id='table1']//tr[n]/td[n]
3) xpath=//a[contains(text(), 'test')] text属性使用text()
4) xpath=//a[contains(@href, '#id1')]/a[n] 其余属性则使用@属性名
5) xpath=//table[@class= 'style']//th[text()= 'xxx']/../td 其中../表示从子元素逆向定位父元素
6) xpath=//*[text()='right']
7) xpath=//*[starts-with(@href, 'xxx')]
8) xpath=//*[ends-with(@href, 'xxx')]
9) xpath=//*[matchs(text(), 'xxx')] 可使用正则表达式
10) xpath=//input[@name='name1' and @value='yes'] 支持逻辑运算符and/or/not
以下举例css常用语法:
1) css用#表示id属性,如#kw
2) css用.表示class属性,如.slipt
3) css可直接使用标签名称,无任务标识符,如input
4) css通过其他属性定位时写为:css=[name='kwname']
5) css也可通过标签和属性组合定位,如css=[a.text='xxx']
关于UI自动化中元素定位常用方法的个人总结的更多相关文章
- (appium+python)UI自动化_03_元素定位工具
前言 在UI自动化过程中,需要对手机app上的元素进行定位,然后进一步编写自动化脚本操作app.定位元素首先需要定位工具来辅助查看页面元素.小编常用的定位工具有2种,分别是uiautomatorvie ...
- python ui自动化之元素定位和常用操作
做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 ...
- UI自动化之元素定位(xpath、css)
很早之前就已经写过自动化了,不过点着功能久了就会容易忘记元素定位,尤其是xpath和css定位,所以就花点时间做下总结收集. xpath有两种定位: 一.绝对路径(不推荐使用,除非已经使用了所有方式仍 ...
- 关于UI自动化IOS元素定位方法说明
1. 元素属性介绍 下图是通过weditor定位的微博的"我的钱包",各属性如下图: className:元素类型,如:XCUIElementTypeButton isEnable ...
- 【基础】selenium中元素定位的常用方法(三)
一.Selenium中元素定位共有八种 id name className tagName linkText partialLinkText xpath cssSelector 其中前六种都比较简单, ...
- Python+Appium自动化测试(5)-appium元素定位常用方法
对于Android而言,查找appUI界面元素属性的工具有三种:appium desktop,uiautomatorviewer.bat,weditor.之前已经介绍过了weditor的使用,这里我将 ...
- selenium+python自动化之元素定位
自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. ...
- python3+Appium自动化12-H5元素定位环境搭建
前言 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原生控件进行元素 ...
- selenium8中元素定位方式
Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素才能进行后续的自动化控制,我在这里将对各种元素定位方式进行总结归纳一下. 这里将统一使用百度 ...
随机推荐
- springboot整合mybatics PLUS
首先添加maven依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactI ...
- wpf 命令
上图为命令的 示例
- 十分钟搞定 pandas
原文:http://pandas.pydata.org/pandas-docs/stable/10min.html 译者:ChaoSimple 校对:飞龙 官方网站上<10 Minutes to ...
- Python帮助
我们可以很容易的通过Python解释器获取帮助.如果想知道一个对象(object)更多的信息,那么可以调用help(object)!另外还有一些有用的方法,dir(object)会显示该对象的大部分相 ...
- Netty 中 EventLoopGroup 的创建
本文是基于 Netty 4.1.6.Final 的源码来分析的. 在分析源码之前做一些准备工作: 先熟悉一下 IDEA 的几个快捷键,能极大的提高我们查看源码的效率: Ctrl + Alt + B:用 ...
- linux下用命令安装node&pm2
我的安装环境是腾讯云centos7操作系统,并且将安装包下载到了/usr/local/src目录下 一.下载node安装包 1.wget https://npm.taobao.org/mirrors/ ...
- libnids校验和引起回放包不能正常捕捉
如题 取消校验和校验即可: struct nids_chksum_ctl temp;temp.netaddr = 0;temp.mask = 0;temp.action = 1;nids_regist ...
- cocos2dx-lua中handler解析
先看一段代码: local c=c or {} function c:onTouch() print "test in onTouch" end function handler( ...
- http协议常见状态码含义
状态码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值: 2xx:成功--表示请求已被成功接收.理解.接受 200(成功) 服务器已成功处理了请求.通常,这表示服务器提供了请求的网页. ...
- SpringBoot 部署到linux环境
第一部分:Springboot项目部署 说明:工具使用的是IEDA 第一:项目打包 1.在pom文件中添加插件 <build> <plugins> <plugin> ...