做App UI自动化的时候,appium使用最频繁的应该就是定位元素了。

Appium常用的元素属性值:

resource-id:resource-id属性一般ID是唯一的,如果元素中有ID的话,优先考虑ID定位:

定位方法:

driver.find_element_by_id('resource-id属性值')

class_name:通过元素class属性值来定位元素:

定位方法:

driver.find_element_class_name('class_name属性值') 

xpath:通过元素的xpath来进行定位:

定位方法:

driver.find_element_by_xpath("//*[@text='value']")

if 定位不到元素会出现NoSuchElementException,我们可以进行组合定位:

driver.find_element_by_xpath("//*[@text ='value' and @class = 'classvalue']”)

其中:

//    # 全局范围
* # 增加一个筛选的标签条件
[] # 添加筛选的条件
@ #表示添加的条件是属性
text #通过文本来查找
value #属性的值
and # 可以进行多个条件的关联

 通过以上的3个方法可以获取元素的进行,下面就可以对元素进行对应的操作。

Appium元素的操作:

driver.find_element_by_id('resource-id属性值').click

  # 对应resource-id进行点击

driver.find_element_by_id('resource-id').clear

  # 对应的resource-id进行清除

driver.find_element_by_class_name('android.widget.EditText').send_keys('value')

  # 对应的class_name进行输入value

Appium获取元素的信息:

driver.find_element_by_id('resource-id').text

  # 获取resource-id的文本

driver.find_element_by_id('resource-id').location

  # 获取resource-id的位置,返回字典,x,y是元素左上角的坐标

driver.find_element_by_id('resource-id').size

  # 获取resource-id元素的大小,返回字典,包含width,height

driver.get_attribute(attribute)

  # attribute:可以获取resource-id,class,text,package,name

appium之元素定位方法的更多相关文章

  1. Appium Android 元素定位方法 原生+H5

    APPIUM Android 定位方式   1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement eleme ...

  2. Appium+Python 自动化-appium常用元素定位方法

    https://www.cnblogs.com/rabbit-testing/p/8042733.html 大牛 https://blog.csdn.net/kaka1121/article/deta ...

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

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

  4. Appium学习笔记4_元素定位方法

    Appium之元素定位,如果对Android上如何使用工具获取页面元素有问题的,请转战到这:http://www.cnblogs.com/taoSir/p/4816382.html. 下面主要是针对自 ...

  5. Robotframework + Appium 之常用元素定位方法

    任何自动化测试,其实手动测试也是一样的,元素定位(目标定位)是首要任务,这是最直接的测试对象呀! 好了,废话不多说,又到了元素定位啦,之前我们已经介绍过selenium及appium常用的定位方法,下 ...

  6. appium 元素定位方法汇总

    以上图为例,要定位到右下角的 我的 ,并点击 # appium的webdriver提供了11种元素定位方法,在selenium的基础上扩展了三个,可以在pycharm里面输入driver.find_e ...

  7. 基于appium的常用元素定位方法

    一.元素定位工具 app应用的元素使用的是控件定位,不同于web网页,web网页定位元素通常使用的是F12工具,那么在app当中我们则要借助其它的工具来辅助定位. 1.uiautomatorviewe ...

  8. Python+Appium自动化测试(6)-元素等待方法与重新封装元素定位方法

    在appium自动化测试脚本运行的过程中,因为网络不稳定.测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待 ...

  9. 初探appium之元素定位(1)

    无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多 ...

  10. 不支持find_element_by_name元素定位方法,抛不支持find_element_by_name元素定位方法,会抛如下错误 org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session的解决

    appium1.5后不支持find_element_by_name元素定位方法,会抛如下错误 org.openqa.selenium.InvalidSelectorException: Locator ...

随机推荐

  1. Linux环境使用Docker安装MongoDb

    系统环境: CentOS 7.6 64位(同样适用于Ubuntu) 安装步骤: 1.创建文件夹 /home/docker/mongo/config /home/docker/mongo/data 2. ...

  2. Vue路由跳转时定位到页面顶部

    代码如下: router.afterEach((to, from, next) => { document.body.scrollTop = 0; document.documentElemen ...

  3. MySQL日期/时间函数

    1.查询当前时间函数: select NOW(),LOCALTIME(),SYSDATE(),CURRENT_TIMESTAMP(); 但是now()与sysdate()有点差异的,一个语句中now( ...

  4. 实验: spring-boot 整合 fluent-mybatis 实验过程!!!!

    1.参考: 简单整合,会报错误 https://segmentfault.com/a/1190000040467885?utm_source=sf-similar-article 利用maven编译, ...

  5. Spring可扩展的XML Schema机制 NamespaceHandlerSupport

    对xml文件的解析 1.可自定义标签, 2.可以覆盖原有的注册方法, 包括但不限于bean 加载,注解

  6. 从redis中取出数据并转成java对象

    1.//数据存入redis中 redisTemplate.opsForValue().set(loginame, JSON.toJSONString(users),1000,TimeUnit.SECO ...

  7. Sentinel 高可用流量管理框架

    出处:https://www.oschina.net/p/sentinel?hmsr=aladdin1e1 Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流.流量 ...

  8. node中get和post接口

    接口传参 使用ajax请求向服务器接口传参,按http协议的约定,每个请求都有三个部分: 请求行: 保存了请求方式,地址,可以以查询字符串的格式附加一部分数据. 请求头:它可以附加很多信息,其中con ...

  9. 第08组Beta冲刺(3/4)

    队名 八组评分了吗 组长博客链接(2分) 组员1李昕晖(组长) 过去两天完成了哪些任务 文字/口头描述 了解各个小组的进度与难以攻破的地方,晚上安排开会,安排新的冲刺任务. 重新分配小组及个人任务. ...

  10. vscode python可以运行,无法debug

    参考:https://blog.csdn.net/weixin_44646187/article/details/125810974 提示'cmd' 不是内部或外部命令,也不是可运行的程序 或批处理文 ...