Appium相关

Appium

1、简介

支持多种类型的自动化、支持多平台、支持多种编程语言

自动化程序(Appium客户端库)

Appium Server:转发自动化指令给手机

设备:iOS、Android(要安装自动化代理程序)ios (XCUITest) android(UIAutomator)

检测手机是否连上:adb devices -1

2、前置准备

1、安装jdk

2、安装SDK

3、安装模拟器

查看服务是否启动:

adb devices
nox_adb.exe connect 127.0.0.1:62001

在这里插入图片描述

3、代码

`运行代码前要先运行Appium Desktop

from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey

desired_caps = {
  'platformName': 'Android', # 被测手机是安卓
  'platformVersion': '8', # 手机安卓版本
  'deviceName': 'xxx', # 设备名,安卓手机可以随意填写
  'appPackage': 'tv.danmaku.bili', # 启动APP Package名称
  'appActivity': '.ui.splash.SplashActivity', # 启动Activity名称
  'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
  'resetKeyboard': True, # 执行完程序恢复原来输入法
  'noReset': True,       # 不要重置App
  'newCommandTimeout': 6000,
  'automationName' : 'UiAutomator2'
  # 'app': r'd:\apk\bili.apk',
}

# 连接Appium Server,初始化自动化环境
# 前面为Appium Server的服务端地址,固定的;desired_caps这个参数为主要信息
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 设置缺省等待时间
driver.implicitly_wait(5)

# 如果有`青少年保护`界面,点击`我知道了`
iknow = driver.find_elements_by_id("text3")
if iknow:
    iknow.click()

# 根据id定位搜索位置框,点击
driver.find_element_by_id("expand_search").click()

# 根据id定位搜索输入框,点击
sbox = driver.find_element_by_id('search_src_text')
sbox.send_keys('白月黑羽')
# 输入回车键,确定搜索
driver.press_keycode(AndroidKey.ENTER)

# 选择(定位)所有视频标题
eles = driver.find_elements_by_id("title")

for ele in eles:
    # 打印标题
    print(ele.text)

input('**** Press to quit..')
driver.quit()

`

4、查找应用Package和Activity

(1)没有apk:应用已经在手机上安装

​ 步骤:进入到要操作的界面,执行:

adb shell dumpsys activity recents | find "intent={"

其中第一行就是当前的应用,‘/’前的为package名,’/'后的全部为Activity

(2)有apk

获取package:

d:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging d:\tools\apk\bili.apk | find "package: name="

获取activity

d:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging d:\tools\apk\bili.apk | find "launchable-activity"
5、Appium配置连接模拟器

1、使用 命令查看安卓版本

在这里插入图片描述

6、界面查看工具

Appium需要工具查看界面元素的特征。

常用查看工具:Android SDK包中的uiautomateviewer和Appium Desktop中的appium inspector

1、uiautomateviewer:在tools\bin目录中

2、appium inspector

定位元素的方法:

1、通过resource-id定位:但这个ID 可能不唯一

driver.find_element_by_id('id')

2、根据class name定位:根据元素的类型,通常不唯一

​ 适用于:(1)如果确定要查找的界面元素类型在当前界面中只有一个就可以用class来选择;

​ (2)要找了一个类型的多个时

driver.find_elements_by_class_name('')

3、根据ACCESSIBILITY ID:元素的content-desc属性

​ 适用于:如果要查询的界面元素有content-desc属性,可以通过它来定位选择元素

driver.find_elemnet_by_accessibility_id('')

4、根据Xpath:可靠性和性能不佳;

driver.find_element_by_xpath(’//’)

7、UI Automator

UI Automator测试框架提供了一组API来构建UI测试,用于在 用户应用和系统应用中进行交互

可以实现打开“设置”菜单或应用启动器等

适合编写黑盒自动化测试,测试代码不依赖于目标应用的内部

8、报错解决

https://www.cnblogs.com/deliaries/p/12449071.html

查看模拟器的package和activity
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值