前提

没有的包,要先进行对应包的安装

如: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定位元素的方式及元素的常用操作的更多相关文章

  1. APP自动化框架LazyAndroid使用手册(2)--元素自动抓取

    作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...

  2. APP 自动化之appium元素定位(三)

    APP自动化测试关键环节--元素定位,以下我们来了解appium提供的元素定位方法! 1. id定位,id一个控件的唯一标识,由开发人员在项目中指定,如果一个元素有对应的resource-id,我们就 ...

  3. 【APP自动化】Appium Android 元素定位方法 原生+H5

    参考资料: http://blog.csdn.net/vivian_ljx/article/details/54410024

  4. App 自动化,Appium 凭什么使用 UiAutomator2?

    1. UiAutomator2 是什么 可能很多人对 UiAutomator2 和 UiAutomator 傻傻分不清楚 UiAutomator 是 Google 开发的一款运行在 Android 设 ...

  5. App自动化之坐标定位

    1.如下图定位"去看看"这个按钮的坐标,可以看到右侧bonds属性:[374,831][654,906] 2.点右上角"搜索"按钮,查看bonds属性:[615 ...

  6. APP自动化1——Appium+pycharm自动化环境搭建全流程

    1. 安装python3,pycharm,可参考之前写的文档:https://www.cnblogs.com/chenweitoag/p/13154815.html 2. 准备以下必要工具: 基于wi ...

  7. App自动化测试之Appium环境安装(涉及雷电模拟器和真机)

    1.安装Microsoft .NET Framework 4.5 及以上版本 2.安装Appium 官方网站地址:http://appium.io/ 我装了1.17.0版本 3.安装JDK 1.8及以 ...

  8. 移动端自动化测试之Appium实战

    软件工程的趋势:目前大部分企业的软件研发模式是持续交付,而自动化是持续交付的根基,而且不仅仅是测试要自动化,所有的环节都在自动化,自动化是未来的方向这一点已成为行业共识. 之前咱们已经讲过了AppCr ...

  9. App自动化《元素定位方式、元素操作、混合应用、分层设计、代码方式执行Pytest 命令》

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.App 元素定位方式 二.元素操作 三.测试混合应用 四.以代码的方式执行 Pytest 命 ...

  10. App自动化之dom结构和元素定位方式(包含滑动列表定位)

    900×383 38 KB 先来看几个名词和解释: dom: Document Object Model 文档对象模型 dom应用: 最早应用于html和js的交互.界面的结构化描述, 常见的格式为h ...

随机推荐

  1. TCP/IP协议(1): IP 地址和寻址方式 —— IP 协议的基础

    TCP/IP协议(1): IP 地址和寻址方式 -- IP 协议的基础 最近在重学计算机网络,给自己立一个 flag,有感而发的时候写关于 TCP/IP 协议栈的系列博客. IP 地址 IP 地址(I ...

  2. Trie 的一类应用

    \(\text{Trie}\) 先从 [十二省联考 \(2019\)] 异或粽子 谈起 不难想到堆加可持久化 \(Trie\) 的做法 这就和 \(\text{[NOI2010]}\) 超级钢琴 类似 ...

  3. PHP封装自定义函数function

    最近一直在看PHP教程,毕竟懂点PHP语言还是不错的选择,起初是准备制作一个三文件夹内关键词组合长尾关键词,然后用PHP做一个全站的动态聚合页面的一个PHP插件,不负有心人啊!已写好,稍晚整理会在资源 ...

  4. 流量加密之:MSF流量加密

    流量加密之:MSF流量加密 目录 流量加密之:MSF流量加密 1 背景 2 生成SSL证书 3 使用MSF生成带证书的后门 4 验证流量 1 背景 在MSF中生成shell,并上线运行时.都是通过ht ...

  5. [EULAR文摘] 超声滑膜炎和腱鞘炎对已获临床缓解患者病情复发的预测

    标签:eular文摘; 超声评估; 病情预测; 腱鞘炎 超声滑膜炎和腱鞘炎对已获临床缓解患者病情复发的预测 Bellis E, et al. EULAR 2015. Present ID:OP0217 ...

  6. CF1470E 题解 —— 询问分叉转构建虚树的复杂度证明

    简要题意:给定一个长为 \(n\) 的排列 \(p\) 和一个整数 \(c\le 4\),称排列 \(p'\) 合法当且仅当 \(p'\) 可以通过 \(p\) 翻转若干个不交的区间 \([l,r]\ ...

  7. vitis笔记1

    安装vitis2021.1 配置环境 添加环境变量 下载包 install 注意:切换到<install_dir>/Vitis//scripts/installLibs.sh,执行指令时候 ...

  8. python去重的几种方法

    from collections import OrderedDict list1 = [1,5,2,1,10] print(list(set(list1))) #[1, 2, 10, 5] 这种方式 ...

  9. 7. Light (对象)

    Light Mode:模式 Realtime: 实时的.就是当前光照效果是实时的,不包含烘焙效果(即使场景曾经烘焙过) Mixed: 混合的.就是既使用烘焙数据对静态对象(Lightmap stati ...

  10. 有趣的drop-shadow

    如果写了好几个阴影,filter: drop-shadow(-0.5vmin 6vmin 0 var(--s2)) drop-shadow(-4.5vmin 10vmin 0 var(--v3));将 ...