Appium自动化测试3:常见控件交互方法

APP自动化测试(3)-Appium Inspector介绍 Appium Inspector介绍,包括配置介绍、元素定位区域介绍和如何定位元素初步介绍,了解该工具的用法 阅读详情

常见的交互方法

简介

与 Web 元素操作一样(参考 Selenium Web 元素操作),定位到 APP 控件元素后,可以对控件进行一系列的操作,实现与 APP 交互,比如点击、文本输入、元素属性获取等。

控件交互常用方法

常见操作
  • 点击方法 element.click()。
  • 输入操作 element.send_keys('appium')。
  • 清除操作 element.clear()。
状态判断
  • 是否可见 element.is_displayed() 返回 True/False。
  • 是否可用 element.is_enabled() 返回 True/False。
  • 是否被选中 element.is_selected() 返回 True/False。
获取元素属性
  • 获取元素属性:

    • element.get_attribute()
    • resource-id/resourceld 返回 resource-id(API=>18 支持)。
    • text 返回 text。
    • class 返回 class(API=>18 支持)。
    • content-desc/contentDescription 返回 content-desc 属性。
    • checkable,checked,clickable,enabled,focusable,focused 等。
  • 获取元素文本:

    • 格式:element.text。
  • 获取元素坐标:

    • 格式:element.location。
    • 结果:{'y': 19,'x: 498}。
  • 获取元素尺寸(高和宽):

    • 格式:element.size。
    • 结果:{'width':500,'height':22)。
控件操作交互示例
  • 打开 ApiDemos.apk。
  • 点击 Animation 进入下个页面。
  • 点击 Seeking 进入下个页面。
  • 查看【RUN】按钮是否显示/是否可点击。
  • 查看【滑动条】是否显示/是否可点击。
  • 获取【滑动条】长度。
  • 点击【滑动条】中心位置。
class TestEleOper:

    def setup_class(self):
        '''
        完成 capability 设置
        初始化 driver
        :return:
        '''
        # 设置 cpability
        caps = {
            # 设置 app 安装的平台(Android,iOS)
            "platformName": "Android",
            # 设置 appium 驱动
            "appium:automationName": "uiautomator2",
            # 设置设备名称
            "appium:deviceName": "emulator-5554",
            # 设置被测 app 的包名
            "appium:appPackage": "io.appium.android.apis",
            # 设置被测 app 启动页面的 Activity
            "appium:appActivity": ".ApiDemos",
            # 不清空缓存信息
            "appium:noReset": True,
            # 首次启动的时候,不停止app
            "appium:dontStopAppOnReset": True,
            # 跳过安装,权限设置等操作
            "appium:skipDeviceInitialization": True
        }

        # 初始化 driver
        self.driver = webdriver.Remote(
            "http://127.0.0.1:4723",
            options=UiAutomator2Options().load_capabilities(caps)
        )
        # 添加隐式等待
        self.driver.implicitly_wait(10)

    def test_ele_oper(self):
        '''
        点击滑动条中心位置
        :return:
        '''
        # 点击 Animation
        self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Animation").click()
        # 点击 Seeking
        self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Seeking").click()
        # 查看【RUN】按钮是否显示/是否可点击
        run_btn_ele = self.driver.find_element(AppiumBy.ID, "io.appium.android.apis:id/startButton")
        print(f"RUN按钮是否显示 {run_btn_ele.is_displayed()}")
        print(f"RUN按钮是否可点击 {run_btn_ele.is_enabled()}")
        # 查看【滑动条】是否显示/是否可点击
        seek_bar_ele = self.driver.find_element(AppiumBy.ID, "io.appium.android.apis:id/seekBar")
        print(f"滑动条是否显示 {seek_bar_ele.is_displayed()}")
        print(f"滑动条是否可点击 {seek_bar_ele.is_enabled()}")
        # 获取【滑动条】长度
        seek_bar_ele_width = seek_bar_ele.size.get('width')
        print(f"滑动条长度为 {seek_bar_ele_width}")
        # 获取【滑动条】起始位置坐标
        seek_bar_ele_start = seek_bar_ele.location
        print(f"滑动条起始位置坐标为 {seek_bar_ele_start}")
        # 获取【滑动条】中间位置坐标
        seek_bar_center_x = seek_bar_ele_start.get("x") + seek_bar_ele_width/2
        seek_bar_center_y = seek_bar_ele_start.get("y")
        seek_bar_center = (seek_bar_center_x, seek_bar_center_y)
        print(f"滑动条中间位置坐标为 {seek_bar_center}")
        # 点击【滑动条】中间位置
        self.driver.tap([seek_bar_center], 1000)

总结

常见控件的基本交互方式,可以模拟用户与应用程序的交互。在编写测试脚本时,通常需要结合元素的定位方式(如 ID、XPath 等)来找到相应的控件元素。确保测试脚本中的等待和定位策略,以及对元素状态的验证,可以提高测试的稳定性和可靠性。

Appium使用教程 Appium使用教程,基本介绍,实现原理 阅读详情

相关推荐

Appium控件交互

与Web元素操作一样(Web自动化测试 | 元素操作),定位到APP控件元素后,可以对控件进行一系列的操作,实现与APP就交互,比如点击、文本输入、元素属性获取等。 元素操作 元素常用操作方法 点击方法 element.click() 输入操作 element.send_keys(“appium”) 设置元素的值 element.set_value(“appium”) 清除操作 element.clear() Python测试实例 安装ApiDemos-debug.apk,下载地址:https://gi

测试开发小记 1065

Appium控件交互策略:优化自动化测试效率的关键方法

与 Web 元素操作一样(参考 Selenium Web 元素操作),定位到 APP 控件元素后,可以对控件进行一系列的操作,实现与 APP 交互,比如点击、文本输入、元素属性获取等。常见控件的基本交互方式,可以模拟用户与应用程序的交互。在编写测试脚本时,通常需要结合元素的定位方式(如 ID、XPath 等)来找到相应的控件元素。确保测试脚本中的等待和定位策略,以及对元素状态的验证,可以提高测试的稳定性和可靠性。获取更多软件测试技术资料/面试题解析,请点击!

霍格沃兹测试学院的博客 671

如何优化appium-IOS的自动化测试运行的速度

做了测试刚一年,我做了PC appium-android,appium-ios测试开发,也有一些心得,大神什么的就不要看了,直接正题 我们也都知道appium-ios测试原理是appium调用instrument驱动手机,所以其实我们写的代码都会转化成instrument代码去执行,appium要放出一套标准的接口,所以会把instrument封装起来, 我用的appium版本是1.4.13,

liuzhenhaicsol110的博客 5261

Selenium page_load_strategy设置页面加载策略

Selenium page_load_strategy设置页面加载策略

人生苦短,何妨一试 2075

Python Appium自动化测试 获取控件ID

Time will tell. 在前面的章节里,分享了通过获取控件坐标点来获取点击事件所需要的点击位置,那么还有其他获取控件点击事件所需要点击位置的方法吗?当然有。 在不同大小屏幕的手机上获取控件的坐标点,不是一样的。因此在不同的机型上需要重新获取坐标点。如果操作控件特别多,那么获取控件的坐标点就会特别繁琐。因此可以通过获取控件 ID 来避免获取控件坐标点的这种弊端。 控件 ID 的获取主要通过HierarchyViewer,下面从打开和使用两方面进行讲解。 1、HierarchyViewer 打开方.

kami_ochin_akane的博客 1893

浅谈自动化测试工具 Appium

appium 是一个自动化测试开源工具,支持 iOS 和 Android 平台上的原生应用,web 应用和混合应用。● 移动原生应用:单纯用 ios 或者 android 开发语言编写的、针对具体某类移动设备、可直接被安装到设备里的应用,一般可通过应用商店获取,比如某个游戏 app;● 移动 web 应用:使用移动浏览器访问的应用(appium 支持 iOS 上的 Safari 和 Android 上的 Chrome),不需要下载到设备上,而是通过浏览器直接访问,比如 H5 九曲封神游戏;

Free355的博客 1611

手机自动化测试:Appium源码分析之跟踪代码分析四 3

exports.mobileRotation = function (req, res) { req.body = _.defaults(req.body, { x: 0.5 , y: 0.5 , radius: 0.5 , rotation: 3.14159265359 , touchCount: 2 , duration: 1 , element: n...

weixin_33979745的博客 143

Appium - Android的 几种控件定位方法

一、工具使用(UIAutomatorViewer) UIAutomatorViewer工具位于Android SDK目录(./Android SDK/tools/bin/)下,是Android sdk自带的工具,界面简洁,使用方便,对于我们的自动化测试来说是一个很好的辅助工具。 二、控件定位方式(以“设置-蓝牙”为例) 1、id定位 该控件的对应ID属性为:“resoerce-id” :...

R.zb的博客 1356

探索Selenium打开浏览器加载慢的原因

在自动化元素定位操作中经常使用智能等待来加强定位的强壮性,主要就是因为WebDriver没有提供页面加载场景的方法;在使用JavaScript知识的突然心生灵感,可以使用JavaScript来配合验证页面加载,结果发现我真是井底之蛙。 一、domcument.readyState     首先定位从Document对象出发,而Document对象是在html文档加载完成便可操作使用,所以判断文...

雨墨轩痕 2万+

Appium App UI自动化测试

混合移动应用,在native中嵌入了一些html页面,这样可以将app里面的一些ui显示的图片什么的,可以快速进行更新,而不需要担心各大app商店审核的时间,也不需要用户再自行再去更新软件app,,用户只需在打开app的时候,后台就会自动更新页面,可以使app更快的响应变化,面对一些节日活动时,可以很快更新,,弊端就是,因为后台需要去占用资源更新,自然会使app使用时变得延迟高、用户交互响应慢等,所以不应在一款app内大量使用,随着移动终端的普及,手机应用越来越多,也越来越重要。

rainsghost的博客 4380

基于小波变换的信号降噪处理及仿真研究_信号处理方法推荐--1(转载自用,侵删)...

综述作者:aresmiki链接:https://www.zhihu.com/question/23701194/answer/167005497来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。非平稳信号处理应该是现在信号处理技术最新的也是最热的研究方向了,信号处理方法从最早的时域统计到傅里叶变换的频域分析,是人们认识信号本质的一次巨大飞跃,给了分析人员换个角度看世界的...

weixin_32144483的博客 1249

一篇文章带你入门Appium自动化测试

立足于安卓平台,学习appium测试工具的使用,并利用python语言实现简单的自动化测试。

qq_46166916的博客 9048

MSDN Win10镜像缺少驱动?这里有全面解决方案

针对MSDN Win10镜像缺少驱动的问题,本文提供了四种解决方案:厂商官网下载驱动程序、利用Windows更新获取驱动、使用第三方驱动更新工具以及使用集成驱动的Win10系统镜像。每种方案都有其优缺点,用户可以根据自己的需求和实际情况选择合适的方案。建议优先考虑官方渠道:官方渠道下载的驱动程序稳定可靠,是解决问题的首选方案。谨慎选择第三方工具:使用第三方工具时,务必选择信誉好、无广告捆绑的工具,并注意保护个人隐私和计算机安全。备份重要数据:在进行系统安装或更新前,务必备份重要数据以防丢失。

nntxthml的博客 1512

【L1.第七章】Appium 常见控件与滑动交互方法

与 Web 元素操作一样(参考 Selenium Web 元素操作),定位到 APP 控件元素后,可以对控件进行一系列的操作,实现与 APP 交互,比如点击、文本输入、元素属性获取等。通过发送一系列的触摸事件,模拟用户按住、滑动和释放的动作,可以实现在屏幕上滑动的效果。坐标计算:滑动操作通常涉及到起始点和终点的坐标计算,起始点表示滑动的起始位置,终点表示滑动的结束位置。惯性滑动:有些滑动操作在用户释放手指后还会继续滑动一段距离,模拟惯性滑动的效果,这通常需要在滑动过程中模拟逐渐减速的过程。

欢迎来到我的博客!我是[一禅],一名专注于软件测试领域的资深专家,拥有10年以上的丰富经验。在这个博客中,我将分享我的知识和经验,帮助你从编程小白成长为技术大神。 876

机器人抓取(一)—— ROS MoveIt! 程序控制真实UR5机器人运动(python)

接上篇:ubuntu18.04 ros-melodic 安装 ur_robot_driver,驱动真实的 ur5 机器人 上文在 ubuntu 系统中配置了ur 机器人ros功能包 universal_robot 和驱动 Universal_Robots_ROS_Driver,并实现了用 moveit_rviz 拖动机器人运动。本文旨在学习如何使用 moveit python 用户接口moveit_commander,实现真实的ur5 机器人轨迹规划与控制。 1. ur5 机器人控制 参考:MoveIt »

zxxRobot的博客 1万+

AB脉冲详解(编码器,PLC,上位机)

编码器线有些是用不到的。Z脉冲:360度中,只有1度是输出,输出能力是。编码器实际就是发光二极管,所以电流超过20ma会缩短寿命或损坏。

cfqq1989的博客 1万+

App自动化测试:高级控件交互方法

APP 的控件元素不仅涵盖了基础用户界面操作,还包括用户与应用程序中更复杂、功能丰富的空间之间的互动。这种交互远不止于简单的按钮或输入框。通过借助 Appium 的 Actions,能够完成对应用程序进行手势识别的交互。这意味着可以通过各种手势,如滑动、缩放、长按等,实现更灵活、直观的用户体验。这种高级交互使得应用程序更具交互性和吸引力,为用户提供了更深入参与应用功能的途径。 ​

weixin_47648853的博客 890

MICS-6814多气体传感器与ESP32-C3 Mini接口构建空气监测系统

cararenuity C3 Mini的多个ADC引脚,Wi-Fi和蓝牙LE以及紧凑的设计使其成为嵌入式物联网应用的绝佳选择。在这个项目中,我们将把MICS-6814多气体传感器与基于esp32 -C3的开发板cararenuity C3 Mini连接起来。更多模拟引脚:与ESP8266只有一个ADC引脚不同,基于esp32 -C3的cararenuity C3 Mini提供多个ADC引脚,使其成为多传感器应用的理想选择。紧凑可靠:该板的小尺寸使其成为嵌入式应用的理想选择,而不会牺牲性能。

hie98894的博客 768

『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium

Appium是开源的、跨平台的测试自动化测试框架;主要用于测试移动端应用;Appium支持模拟器和真机上的原生应用、混合应用、Web应用;Appium使用WebDriver的JSON wire协议来驱动Apple系统的库、Android系统的框架;因Appium集成了Selendroid框架,所以Appium支持比较老版本的Android;Appium支持支持的所有语言(JavaPythonJavaScriptPHPRubyC#ClojurePerl等)。

虫无涯的博客 7482

手把手教你用键盘在Ubuntu上给Lerobot机械臂采集HIL-SERL训练数据(附完整配置文件)

本文详细介绍了在Ubuntu系统中使用键盘控制Lerobot机械臂进行HIL-SERL训练数据采集的完整流程。从环境准备、机械臂校准到键盘遥操系统配置和数据采集优化,提供了实战指南和常见问题解决方案,帮助读者高效获取高质量训练数据,推动具身智能和强化学习应用的发展。

weixin_30733003的博客 477

假新闻检测论文分享(30)MMDFND: Multi-modal Multi-Domain Fake News Detection

现有的假新闻检测方法通常集中在单一领域的新闻上,如健康或政治。然而,社交媒体上的新闻往往来自多个领域,这给单一领域的假新闻检测方法带来了两个主要挑战:数据稀缺性:处理较小、单一领域的新闻数据集时,由于训练数据的稀缺,模型的有效性显著下降。跨领域检测的准确性下降:单一领域的假新闻检测方法在跨领域新闻数据集上的准确性大幅降低。缓解领域间模态语义偏差:通过DPLE网络提取跨领域和领域特定的知识,缓解了不同领域间文本和图像的语义差异。

weixin_41964296的博客 668

自动化测试之路 —— Appium输入及模拟手势

前一篇我们已经熟悉了各种关于元素的定位方法,也基本掌握的各种方法的实际使用场景。既然是移动设备,就必定会有相关的键盘与屏幕操作,那接下去就为大家介绍这些相关的操作。 如果要在控件中输入中文的话,则需要在Desired Capabilities中加入'unicodeKeyboard': True与'resetKeyboard': True这两项参数;它们分别代表可以以unicode编码格式进行输入、初始化键盘状态。...

Austin的博客 4298

mbedtls | 01 - 移植mbedtls库到STM32的两种方法

一、mbedtls 开源库 1. mbedtls是什么 Mbed TLS是一个开源、可移植、易于使用、代码可读性高的SSL库。可实现加密原语,X.509证书操作以及SSL / TLS和 DTLS 协议,它的代码占用空间小,非常适合用于嵌入式系统。 mbedtls遵循 Apache 2.0 开源许可协议,目前由 TrustedFirmware 维护(Linaro主持的一个治理开放社区项目),在Github上已收获 2.6k star,目前Github上发布的最新版本为 2.24.0 版本,开源仓库地址为:

Mculover666的博客(嵌入式) 1万+

如何使用appium desktop 获取Android APP 控件的id

背景:随着Android 版本的更新,你会发现我们之前用的最新的版本的Appium 1.5.3无法启动我们的 Android APP 在模拟器为7.0的设备上,所以我们有必要了解如何使用 appium desktop 来获取Android APP 控件的id.也由于获取在自动化测试过程中获取控件的信息(比如id)是非常关键的一步。环境搭建 安装Appium Desktop 的windows版本(ht

Linda的自动化测试之旅 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

自动化测试工具——Appium 如何实现APP的UI自动化测试(Android)

启动session成功运行app之后,点击想要操作的元素,在右边可以看到这个元素的相关信息,查看元素有哪些属性适合定位,如:此处有id,则使用find_element_by_ID(by=Appium.ID,value="")。(1)USB连接手机,打开手机开发者模式,打开开发者选项中的USB调试、USB安装,小米手机还需要打开USB调试(安全设置),用adb devices命令检查是否连接成功。除了第(4)点说的获取元素属性进行定位,Appium Inspector还有录制脚本功能。

weixin_43854299的博客 4861

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python +Appium 实现app自动化测试

Pthon + Appium实现app自动化测试

ChinaDragon10的博客 6737

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: Appium自动化测试系列: 2. 使用Appium启动APP(真机)
下一篇: Appium自动化测试系列:百问GPT之实现测试用例依赖关系
魑魅魍魉114
博客等级 码龄10年 165粉丝 240原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值