3、app自动化:使用appium定位元素的方式及元素的常用操作
前提:
没有的包,要先进行对应包的安装
如:pip install Appium-Python-Client
一、定位元素,包括属性定位和xpath定位方式
a\属性定位
| 属性 | 定位方式 | 示例 |
| content-desc | AccessibilityID | driver.find_element(By.AccessibilityID,'书城') |
| Class name& Tag name | Class name | |
| resource-id(安卓) | ID | |
| name(IOS) | ID |
import time
from appium.webdriver import Remote
from appium.webdriver.common.mobileby import MobileBy as By rl = "http://127.0.0.1:4723/wd/hub"
caps = {
"platformName": "Android",
"platformVersion": "10.0.0",
"deviceName": "xxxxx",
"appPackage": "comxxxx",
"appActivity": "com.zxxx.MainActivity",
"newCommandTimeout": 10,
# "noReset": True # 注释掉,是因为我需要每次进入的时候,没有任何书籍在书架中
}
driver = Remote(url, caps) ele = driver.find_element(By.ACCESSIBILITY_ID, "书城")
b\路径定位
根据元素之间的层级关系(或者说路径)进行定位,是appium里目前适用性最高的定位方式
如:
driver.find_element(By.XPATH,'//android.widget.FrameLayout[@resourceid="android:id/content"]')
c\拓展 之 元素内定位
当元素内还包含一个或多个其他元素内,就可以先定位到该元素,然后再通过该元素去定位其下面的元素,这种方式就叫元素内定位。
下面用一段伪代码来说明:
ele=driver.find_elements(By.XPATH,xpath)
ele[1].find_element(By.ID,'xxxx')
二、元素的操作
1、元素的点击
ele.click()
2、输入
ele.send_keys('输入的值')
3、获取文本
ele.text
4、元素截图
ele.screenshot('name.jpg')
5、获取元素属性
ele.get_attribute("text")
ele.get_attribute("class")
ele.get_attribute("displayed")
ele.get_attribute("content-desc")
6、其他一些比较重要的属性
ele.location #The location of the element in the renderable canvas.
ele.size #The size of the element. print(ele.location) # 元素的位置属性 {'x': 606, 'y': 108}
print(ele.size) # 元素的尺寸属性 {'height': 115, 'width': 132} # 确定元素的操作点,一般是:元素的中心点
# 其计算公式是: (x+width/2,y+height/2)
三 appium的系统操作
1、返回 driver.back()
2、滑动 driver.swipe(700,1700,700,500)
3、截图 driver.save_screenshot("整体截图.png")
3、app自动化:使用appium定位元素的方式及元素的常用操作的更多相关文章
- APP自动化框架LazyAndroid使用手册(2)--元素自动抓取
作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...
- APP 自动化之appium元素定位(三)
APP自动化测试关键环节--元素定位,以下我们来了解appium提供的元素定位方法! 1. id定位,id一个控件的唯一标识,由开发人员在项目中指定,如果一个元素有对应的resource-id,我们就 ...
- 【APP自动化】Appium Android 元素定位方法 原生+H5
参考资料: http://blog.csdn.net/vivian_ljx/article/details/54410024
- App 自动化,Appium 凭什么使用 UiAutomator2?
1. UiAutomator2 是什么 可能很多人对 UiAutomator2 和 UiAutomator 傻傻分不清楚 UiAutomator 是 Google 开发的一款运行在 Android 设 ...
- App自动化之坐标定位
1.如下图定位"去看看"这个按钮的坐标,可以看到右侧bonds属性:[374,831][654,906] 2.点右上角"搜索"按钮,查看bonds属性:[615 ...
- APP自动化1——Appium+pycharm自动化环境搭建全流程
1. 安装python3,pycharm,可参考之前写的文档:https://www.cnblogs.com/chenweitoag/p/13154815.html 2. 准备以下必要工具: 基于wi ...
- App自动化测试之Appium环境安装(涉及雷电模拟器和真机)
1.安装Microsoft .NET Framework 4.5 及以上版本 2.安装Appium 官方网站地址:http://appium.io/ 我装了1.17.0版本 3.安装JDK 1.8及以 ...
- 移动端自动化测试之Appium实战
软件工程的趋势:目前大部分企业的软件研发模式是持续交付,而自动化是持续交付的根基,而且不仅仅是测试要自动化,所有的环节都在自动化,自动化是未来的方向这一点已成为行业共识. 之前咱们已经讲过了AppCr ...
- App自动化《元素定位方式、元素操作、混合应用、分层设计、代码方式执行Pytest 命令》
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.App 元素定位方式 二.元素操作 三.测试混合应用 四.以代码的方式执行 Pytest 命 ...
- App自动化之dom结构和元素定位方式(包含滑动列表定位)
900×383 38 KB 先来看几个名词和解释: dom: Document Object Model 文档对象模型 dom应用: 最早应用于html和js的交互.界面的结构化描述, 常见的格式为h ...
随机推荐
- 学习Java Day22
今天学习了如何在包中增加类,想要将包放入类中,就必须将包的名字放在源文件的开头,即放在定义这个包中各个类的代码之前
- Javascript中0.1+0.2===0.3?怎么解决这个问题?
一.问题分析 计算机存储以二进制的方式,而0.1 在二进制中是无限循环的一个数字,所以会出现裁剪,精度丢失会出现,0.100000000000000002 === 0.1,0.200000000000 ...
- Window10环境下,Stable Diffusion的本地部署与效果展示
Diffusion相关技术最近也是非常火爆,看看招聘信息,岗位名称都由AI算法工程师变成了AIGC算法工程师,本周跟大家分享一些Diffusion算法相关的内容. Window10环境下,Stable ...
- LG P5043 树同构
\(\text{problem}\) 无根树同构的判断 \(\text{Analysis}\) 考虑树哈希,注意使用较正确的哈希方法 无根树同构有个性质 只要判断以这两棵树的重心为根是否同构即可 \( ...
- JZOJ 3571. 【GDKOI2014】内存分配
解析 也就是说建一棵权值线段树维护这些信息.要注意的是每次的最优解必然是 \(b\) 小的先做,故离线排序确定离散后的下标再依次求解 \(Code\) #include<cstdio> # ...
- CCRD_TOC_2008年第5期
中信国健临床通讯 2008年第5期 目 录 RA: 临床缓解与亚临床炎症 1. DMARD诱导缓解的RA患者中仍有影像学确证的亚临床炎症 Brown AK, et al. Arthriti ...
- Oracle 备份与恢复 (Docker部署版)
Oracle 备份与恢复 (Docker部署版) 一,宿主机设置定时备份脚本 1.检查Oracle容器是否正常运行 docker ps 2.进入容器,创建shell脚本 #oracle11g 是容器名 ...
- pdf地址展示成Swiper轮播方式-复制链接
1.安装vue-pdf插件,swiper插件.clipboard npm install vue-pdf -snpm install swiper -Snpm install clipborad -S ...
- Solon2 的应用生命周期
Solon 框架的应用生命周期包括:一个初始化函数时机点 + 六个事件时机点 + 两个插件生命时机点 + 两个容器生命时机点(v2.2.0 版本的状态): 提醒: 启动过程完成后,项目才能正常运行(启 ...
- 【调试】ftrace(一)基本使用方法
简介 Ftrace是Linux Kernel的官方tracing系统,支持Function trace.静态tracepoint.动态Tracepoint的跟踪,还提供各种Tracer,用于统计最大i ...