appium简单代码讲解
·
Appium自动化
选择界面元素
操作元素
点击
输入字符
拖拽
获取页面元素的各种属性
根据Appium获取的数据进行分析和处理
代码回顾:
from appium import webdriver #webdriver是基于selenium扩展的一个对象
import time,traceback
desired_caps = {} #存储一些配置信息,通过字典键值对来存。吧配置信息传递给appium server
desired_caps['platformName'] = 'Android' #指定自动化的设备
desired_caps['platformVersion'] = '8.0' #设备的操作系统版本
desired_caps['deviceName'] = 'test' #对安卓没啥用,但是不能不写
# desired_caps['app'] = r'e:\apk\toutiao.apk' #app安装包的路径,如果手机没装的话,会帮你装上。如果装好,可以注释
desired_caps['appPackage'] = 'io.manong.developerdaily' #应用的包名
desired_caps['appActivity'] = 'io.toutiao.android.ui.activity.LaunchActivity' #告诉appium启动的Activity的名字,安卓应用是由多个Activity组成的
desired_caps['unicodeKeyboard'] = True #输入中文的话,这个就要打开。给appium自动化用的。输入非ask码用的
desired_caps['resetKeyboard'] = True #配合上面一起用的,据说可以还原之前的输入法
desired_caps['noReset'] = True #非常重要。如果不设置的话。每次运行都会清空里面的数据。
desired_caps['newCommandTimeout'] = 6000 #主要是与服务端appiumserver连接的时间,防止断开。6000s
#启动Remote RPC
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) #
try:
driver.implicitly_wait(10)
# 根据id找到元素,并点击,id和 html 元素的id不同
driver.find_element_by_id("io.manong.developerdaily:id/tab_bar_plus").click()
time.sleep(1)
driver.find_element_by_id("io.manong.developerdaily:id/btn_email").click()
time.sleep(1)
# 输入用户名、密码
ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_email")
ele.send_keys('jcyrss@163.com')
ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_password")
ele.send_keys('sdfsdf')
time.sleep(2)
# 点击登录
driver.find_element_by_id('io.manong.developerdaily:id/btn_login').click()
pass
except:
print (traceback.format_exc())
input('**** Press to quit..')
driver.quit()
如何获取包名appPackage,和启动页appActivity:
用sdk\build-tools\28.0.2\aapt.exe工具;见下面:
先进到app所在的目录,打开命令行(shift+右击)
D:\>E:\androidsdk\build-tools\28.0.2\aapt.exe dump badging jisuanqi.apk(见图)
session #会话,就是一次交流
Appium测试程序和Appium server之间的http请求必须要在一个session中进行
session ID








tap方法
click类似,都是点击界面
区别是,tap是针对坐标
难以用通常的方法定位元素的时候使用。不同的手机,不同的分辨率。坐标不一样。不建议使用
ADB命令:(Android Debug Bridge)
与模拟器或链接的Android设备进行通信
命令参考:
https://developer.android.google.cn/studio/command-line/adb
adb install path_to_apk #安装app文件
adb shell #进入手机目录
UIAutomator API
UIAutomator API测试框架提供了一组API来构建UI测试
范例:
根据class name和text属性
code = 'new UiSelector().text("我的").className("android.widget.TextView")'
ele = driver.find_element_by_android_uiautomator(code)
根据resource id属性
'new Uiselector().resoureceId("io.manong.developerdaily:id/theid")'
操作界面:
滑动
Appium WebDriver的swipe方法(坐标和duration)
直接查看,估算操作坐标
先获取,再分析操作坐标(更健壮)
location = ele.location #左上角坐标(dict:有 X,Y)
size = ele.size #宽,高(dict:有 width,height)
知道上面两个数据,就知道所有
操作不可见元素
先滑动到其可见
在操作该元素
获取全屏幕尺寸
screenSize = driver.get_window_size
screenW = screenSize["width"]
screenH = screenSize["height"]



更多推荐



所有评论(0)