APP自动化基础知识
创始人
2024-06-02 05:55:00
0

一、adb常用命令 及 Appium的元素定位工具

以下命令均在cmd中进行操作

  1. 连接夜神模拟器:
 adb connect 127.0.0.1:62001
  1. 查看连接的设备:
adb devices
  1. 查看被测app的包名以及界面名
 adb shell dumpsys window windows | findstr mFocusedApp
  1. 元素常见的几个属性:
    text
    resourceId
    class: 元素标签
    content-desc: 元素功能描述
    注:在截屏的时候,必须当前截屏的终端没有其他的进程在占用,包括appium server
  2. 文本定位工具:
    1.1 uiautomator
    安卓SDK自带的定位工具
    1.2 appium Desktop Inspector
    appium-server 自带的定位工具
    1.3 weditor
    Uiautomator2 python第三方库 app自动化测试框架
    安装Uiautomator2:
	 命令01:pip install Uiautomator2命令02: python -m uiautomator2 init命令03: pip install weditor确认安装: weditor --help启动weditor: python -m weditor

二: Appium界面元素定位方法(id/ClassName/accessibility/xpath)

  1. 通过resourceId属性定位 find_element(AppiumBy.ID, value) 返回的是一个WebElement对象
  2. 通过文本定位 find_element(AppiumBy.ANDROID_UIAUTOMATOR, ‘new UiSelector().text(“value”).方法二’) 组合定位
    通过调用系统自带框架(Uiautomator1/Uiautomator2)实现元素定位,基于java代码编写UiSelector实现元素定位,提供很多方法,通过多个属性实现元素定位
  3. 通过这个content-desc/description属性实现元素定位
    find_element(AppiumBy.ACCESSIBILITY_ID, “value”)
  4. 通过xpath定位,一般不建议采用这个方法进行定位

三、APP元素的操作

  1. APP四大常用操作:click()点击, send_keys()发送, get_attribute() 获取属性, text() 获取文本
  2. 滑屏, 多点触控, 长按 …
  3. 滑屏操作: 左滑、右滑
    driver.swipe(self: T, start_x: int, start_y: int, end_x: int, end_y: int, duration: int = 0)
    参数说明:
    start_x: 开始位置的x坐标
    start_y: 开始位置的y坐标
    end_x: 结束位置的x坐标
    end_y: 结束位置的y坐标

左滑: 开始位置的x坐标 > 结束位置的x坐标, 开始位置的y坐标 = 结束位置的y坐标

示例代码

from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy# 初始化 app 的配置信息
des_caps = {"platformName": "android",  # 操作系统"platformVersion": "7.1.2",  # 系统版本"deviceName": "****",  # 连接的名称"appPackage": "com.organizationuniapp",  # app的包名"appActivity": "io.dcloud.PandoraEntryActivity",  # app的界面名"unicodeKeyboard": True,   # 使用unicode输入法'resetKeyboard': True,  # 重置输入法到初始状态'noReset': True  # 启动app时不要清除app里的原有的数据}# 连接appium-server
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', des_caps)# 三大等待: 强制等待, 显示等待, 隐式等待
driver.implicitly_wait(15)# 利用 text文本来获取元素
code = driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'new UiSelector().text("获取验证码")')
code.click()# 利用xpath来获取元素(不建议)
username = driver.find_element(AppiumBy.XPATH, "/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.widget.LinearLayout/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View[1]/android.view.View/android.view.View[1]/android.view.View/android.widget.EditText")
username.send_keys("19922222222")

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...