『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?

这篇具有很好参考价值的文章主要介绍了『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 关于APP

  • 在了解元素等位前,我们先了解下app的一些类型,只有了解这些app的类型才能针对性的选择元素定位方法;
  • 因为不同类型的app的定位方式可能存在差异性;
  • 我们了解到APP可以分为原生APPWeb APP、混合APP

1.1 原生APP

  • 而原生APP是基于AndroidiOS平台官方的语言、类库、工具进行开发的APP
  • 这类APP的定位方式一般就只有三种,为id、class_name、Xpath

1.2 Web APP

  • Web APP一般是Web开发语言,通过浏览器运行;
  • 那么就支持selenium的常见8中元素等位方式了:
# id
# class_name
# Xpath
# name
# tag_name
# link_text
# partial_link_text
# CSS

1.3 混合APP

  • 这个其实就是用了原生APP的方法,还用到了HTML5的方法;
  • 那么这种APP就要根据实际情况来定,要么8种元素定位方法都可以用到,要么只能用到部分。

2 测试对象

2.1 获取包信息

  • 我们这里使用真机进行测试;
  • 安装包为taobao,自行下载即可;
  • 下载后查看对应的包名和活动窗口名:
aapt dump badging taobao.apk
F:\monkey_test>aapt dump badging taobao.apk
package: name='com.taobao.taobao' versionCode='609' versionName='10.31.1' compileSdkVersion='33' compileSdkVersionCodename='13'
install-location:'auto'
sdkVersion:'21'
targetSdkVersion:'33'
uses-permission: name='com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE'
uses-permission: name='android.permission.READ_CONTACTS'
uses-permission: name='android.permission.CAMERA'
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.GET_TASKS'
uses-permission: name='android.permission.ACCESS_WIFI_STATE'
uses-permission: name='android.permission.WRITE_EXTERNA
  • 得到重要的两个信息:
appPackage='com.taobao.taobao'
appActivity='com.taobao.tao.welcome.Welcome'

2.2 真机配置

  • 手机上打开USB调试;
  • 打开USB安装;
  • 打开USB调试(安全设置);
  • 注意本文使用的是xiaomi手机。

2.3 启动服务

  • 启动appium服务:
C:\Windows\System32>appium
[Appium] Welcome to Appium v2.2.3
[Appium] Attempting to load driver uiautomator2...
[Appium] Requiring driver at C:\Users\Administrator\.appium\node_modules\appium-uiautomator2-driver
[Appium] Appium REST http interface listener started on http://0.0.0.0:4723
[Appium] You can provide the following URLs in your client code to connect to this server:
[Appium]        http://172.16.1.33:4723/
[Appium]        http://127.0.0.1:4723/ (only accessible from the same host)
[Appium]        http://172.28.128.1:4723/
[Appium] Available drivers:
[Appium]   - uiautomator2@2.34.2 (automationName 'UiAutomator2')
[Appium] No plugins have been installed. Use the "appium plugin" command to install the one(s) you want to use.

2.4 启动session

  • 脚本或打开appium-inspecotr,配置相关信息如下:
{
  "platformName": "Android",
  "appium:automationName": "uiautomator2",
  "appium:deviceName": "xxxx", # 这是设备名称,填写自己的即可
  "appium:appPackage": "com.taobao.taobao",
  "appium:appActivity": "com.taobao.tao.welcome.Welcome",
  "appium:noReset": true
}
  • 启动session后如下界面:
    『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?,# Appium,appium,selenium,测试工具,自动化测试,app

3 元素定位

  • 关于WebAPP之前提及这个和selenium元素定位是一样的,这里可不过多介绍;
  • 这里主要了解下原生APP的常用的三种方式。

3.1 id定位

  • 这种对应方式无疑对测试人员来说是最喜欢的方式了;
  • 因为如果是不变的id属性,那么久代表了唯一性,后续不管元素的位置如何变化,属性不变,对代码的维护成本就小很多了;
  • 比如我们打开软件后,有一个同意的界面,通过appium-inspecotr可以看到元素的属性:
    『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?,# Appium,appium,selenium,测试工具,自动化测试,app
  • 我们可以提炼出【同意】按钮的属性为:
id:com.taobao.taobao:id/provision_positive_button
  • 那我们可以使用的定位方式为id,代码如下:
driver.find_element(AppiumBy.ID, "com.taobao.taobao:id/provision_positive_button").click()

3.2 class_name定位

  • class_name就是根据元素类型进行定位;
  • 加入类型class_name比较多的话,可使用下标就行选择,比如:
driver.find_element(AppiumBy.CLASS_NAME, "content-desc")[1].click()

3.3 Xpath定位

3.3.1 id定位

  • 假如id是唯一的,比如之前我们定位的【同意】这个按钮:
    『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?,# Appium,appium,selenium,测试工具,自动化测试,app
  • 定位方式直接写为:
driver.find_element(AppiumBy.XPATH, 
"//android.widget.TextView[@resource-
id='com.taobao.taobao:id/provision_positive_button']").click()

3.3.2 class标签定位

  • 如果class作为标签定位,那么:
driver.find_element(AppiumBy.XPATH, 
"classxxxx").click()

3.3.3 class属性定位

  • 如果class作为属性定位,那么:
driver.find_element(AppiumBy.XPATH, 
"//*[@class='xxxx']").click()

3.3.4 text唯一性定位

  • 如果元素的text是唯一的,直接使用text文本进行定位;
  • 定位方法为:
driver.find_element(AppiumBy.XPATH, 
"//*[@text='xxxx']").click()

3.3.5 模糊匹配法

  • 可以使用contains
  • 语法为:
driver.find_element(AppiumBy.XPATH, 
"//*[contains(@resource-id, 'xxx')]").click()

driver.find_element(AppiumBy.XPATH, 
"//*[contains(@text, 'xxx')]").click()

driver.find_element(AppiumBy.XPATH, 
"//*[contains(@class, 'xxx')]").click()

3.3.6 组合定位

  • 就是把几种定位方式结合在一起,任意进行组合;
  • 比如:
el = '//*[@text="xxx" and @index="yyy"]'
driver.find_element(AppiumBy.XPATH, el).click()

3.3.7 层级定位

  • 层级定位就是除了以上这些方法都不容易定位的时候会用到;
  • 一般使用逻辑是找这个元素的父子层级进行定位。

文章来源地址https://www.toymoban.com/news/detail-768081.html

到了这里,关于『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java APP自动化测试AppIum

    一、前言 二、Appium环境搭建 2.1 JDK安装 2.2 Android SDK安装配置 2.3 模拟器安装及配置 2.4 Appium Desktop安装及使用 2.5 Appium配置连接模拟器 三、实战基本脚本编写 3.1 创建Maven项目并配置 3.2 简单Demo 四、写在最后   一、 前言 随着移动互联网的发展,APP上面的测试逐渐的流行起来。

    2024年02月05日
    浏览(49)
  • Java + Selenium + Appium手机自动化测试

    一、启动测试机或者Android模拟器(Genymotion俗称世界上最快的模拟器,可自行百度安装) 二、启动Appium(Appium环境安装可自行百度)   三、安装应用到Genymotion上,如下图我安装一个计算机的小应用,包名为CalcTest.apk 安装步骤:(基于Android SDK已经配置好了环境变量,可自行

    2024年02月06日
    浏览(51)
  • Python +Appium 实现app自动化测试

    一、Appium简介 Appium是一款开源工具,用于自动化iOS、Android和Windows桌面平台上的本地、移动web和混合应用程序。原生应用是指那些使用iOS、Android或Windows sdk编写的应用。移动网页应用是通过移动浏览器访问的网页应用(appum支持iOS和Chrome上的Safari或Android上的内置“浏览器”应用

    2023年04月09日
    浏览(41)
  • 【APP自动化测试必知必会】Appium之微信小程序自动化测试

    H5 是指第 5 代 HTML ,也指用 H5 语言制作的一切数字产品。 所谓 HTML 是“超文本标记语言”的英文缩写。我们上网所看到网页,多数都是由 HTML 写成的。 “超文本”是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。而“标记”指的是 这些超文本必须由包含属性

    2024年02月09日
    浏览(108)
  • 使用Appium2.0自动化规模测试APP

    最近做个项目需要测试服务端的并发性能,客户端采用安卓,接口数据采用Restul和流媒体播放。由于流媒体的接口并不清楚,所以决定采用安卓虚拟机来模拟。 正好赶上Appium2.0升级,网上的很多资料都不能用了,这里将整个环境搭建的要点记录下来与大家分享。 #1. Appium2.0的

    2024年02月08日
    浏览(50)
  • app自动化测试之Appium问题分析及定位

    使用 Appium 进行测试时,会产生大量日志,一旦运行过程中遇到报错,可以通过 Appium 服务端的日志以及客户端的日志分析排查问题。 Appium Server日志-开启服务 通过命令行的方式启动 Appium Server,下面来分析一下启动日志,日志第一行显示了 Appium 版本信息和服务在本地的运行

    2024年02月14日
    浏览(37)
  • 阿里P8解析自动化测试工具 —— Selenium&Appium!

    自动化测试,利用自动化测试工具,通过录制/编程方式实现测试活动,发现被测对象存在的缺陷,从而替代手工测试活动。自动化测试不局限于某个具体测试阶段,也不局限被测对象的类型,只要满足自动化测试的必要条件即可实施。 自动化测试条件 自动化测试与手工测试

    2024年04月11日
    浏览(40)
  • APP自动化测试系列之Appium介绍及运行原理

    在面试APP自动化时,有的面试官可能会问Appium的运行原理,以下介绍Appium运行原理。 Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。它使用WebDriver协议驱动IOS,Android和Windows应用程序。 Appium是开源的移动端自动化测试框架; Appium可以测试原生的

    2024年02月13日
    浏览(57)
  • 全网最细最全Appium自动化测试 iOS入门教程,App自动化测试教程,精细整理

    目录:导读 一、MAC电脑上 Appium 的安装流程 二、流程图 三、下载AppiumServerGui和AppiumInspector 四、开始测试       1、真机测试                 1.1 准备工作                 1.2 获取 开发包 .app 结尾                 1.3 WebDriverAgent使用                 1.4 配置 Appium Inspec

    2024年02月07日
    浏览(53)
  • Python与Appium实现手机APP自动化测试的示例代码

    本文主要介绍了Python与Appium实现手机APP自动化测试的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 appium是一个开源的测试自动化框架,可以与原生的、混合的和移动的web应用程序一直使用。它使用WebDriver协议驱动IOS(内

    2024年01月24日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包