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 ...
随机推荐
- 什么是Http? http和https的区别
一.HTTP HTTP (HyperText Transfer Protocol),即超文本运输协议,是实现网络通信的一种规范 在计算机和网络世界有,存在不同的协议,如广播协议.寻址协议.路由协议等等 ...
- ORACLE数据库起不来
由于意外导致数据库无法启动 首先切换到oracle用户,查看profile文件. su - oracle cat .bash_profile 然后进入数据库,查看挂载上 sqlplus "/ ...
- [POI2011]MET-Meteors 解题报告
语言系统紊乱了 QAQ 这道题感觉不是很难鸭 qwq. 先只考虑一个国家,怎么做?很显然,就直接二分一下就行了.判定答案可以维护一个差分数组,然后最后对它做一个前缀和,再求一下这个国家的流行数量就好了 ...
- .net 移动mas短信接口开发
接口文档下载 1.移动后台接入用户新增(选择HTTP协议) 2.后台代码 /// <summary> /// 用户名 /// </summary> priva ...
- 彰显个性│github 和 gitlab 之自定义首页样式
目录 个性首页 制作步骤 修改内容 个性首页 相信很多小伙伴在逛 github 和 gitlab 的时候 会发现很多开发者的首页异常的炫酷,如 https://github.com/autofelix ...
- javaSE学习三
数组 /*数组的基本特点一.其长度是确定的.数组-旦被创建,它的大小就是不可以改变的.二.其元素必须是相同类型,不允许出现混合类型.三.数组中的元素可以是任何数据类型,包括基本类型和引用类型.四.数组 ...
- QP之QEP事件分配流程分析
*********************************1*********************************** QActive *AO_Blinky = &l_bl ...
- 设置点击事件时Unable to preventDefault inside passive event listener due to target being treated as passive
问题 当使用fastClick.js设置点击事件时,控制台报错: [Intervention] Unable to preventDefault inside passive event listen ...
- linux中用户和用户组的概念
大家好,我们继续来上linux课程,这节课我们从以下几点来进行讲解: Linux权限的概念: UID相关概念 用户和用户组的关系 用户和账户的区别 Linux是一个多用户多任务的的操作系统,很多时候, ...
- 多点DLT (Direct Linear Transformation) 算法
阅读前可以先参看上一篇代数视觉博客: 四点DLT (Dierct Linear Transformation) 算法 对于大于4个点的数据点来进行 DLT 算法变换, 如果数据点的标注都十分准确,那么 ...