弱龄寄事外,委怀在琴书。这篇文章主要讲述appium 初探相关的知识,希望能为你提供帮助。
appium服务端:
appium 可以简单的理解为一个由node搭建的一个服务。这个服务接收请求,将这些请求转为手机指令,执行指令并获取结果,返回给调用方。所以不在乎你的脚本是用什么语言实现的,只要符合appium的调用规范即可。
appium客户端:
解析看了下python的appium的代码,appium的webdriver是继承了selenium的webdriver.remote,所以大部分的selenium的调用语法在这里是可以通用的,只是在在自webdriver的子类中扩展了一些手机元素操作的方法,例如:find_element_by_android_uiautomatord。
appium实战:
案例:以真机(android)操作手机打开淘宝,进行商品搜索
1、手机设置为开发调试模式,数据线连接手机和电脑。
2、命令行中输入 appium,启动appium服务
3、编写脚本:
- 初始化webdriver,其中appPackage 和appActivity的的信息可以通过adb的方式来拿到,命令行中输入adb logcat > temp.log,再在手机中打开淘宝,在temp.log中搜索Displayed就可以看到对应的package和activity。
from appium import webdriverdesired_caps = {} #platformName 要测试手机的系统 desired_caps[‘platformName‘] = ‘Android‘ #platformName 手机类型或者模拟器类型,安卓不是必填项 desired_caps[‘deviceName‘] = ‘DLQ0216203006037‘ #appPackage 想要启动的包名 desired_caps[‘appPackage‘] = ‘com.taobao.taobao‘ #appActivity 想要从包中启动的activity的名字 desired_caps[‘appActivity‘] = ‘com.taobao.tao.welcome.Welcome‘ #appium服务的地址和端口号 appDriver= webdriver.Remote(‘http://localhost:4723/wd/hub‘,desired_caps)
-
- 打开淘宝,如果有权限限制则接受
#接受权限 def accepPermission(appDriver): try: appDriver.find_element_by_id(‘com.android.packageinstaller:id/permission_allow_button‘).click() except Exception as e: print(e)accepPermission(appDriver) #同意进入淘宝 appDriver.find_element_by_id(‘com.taobao.taobao:id/yes‘).click() accepPermission(appDriver) #同意进入淘宝 appDriver.find_element_by_id(‘com.taobao.taobao:id/home_searchedit‘).click() #点击查询文本框 appDriver.find_element_by_id(‘com.taobao.taobao:id/searchEdit‘).send_keys(‘xiexie‘) #点击查询按钮 appDriver.find_element_by_id(‘com.taobao.taobao:id/searchbtn‘).click() #退出 appDriver.quit()
-
- 其中应用的id可以通过uiautomator view的工具来获取,这个工具为android sdk自带的工具,位置在< sdkpath> /tools/bin/automatorview,具体的使用方法可以在晚上找下。
推荐阅读
- 密芽母婴行业APP开发软件
- 掌握android支持库
- Mac上操作 androidStudio
- ActivityTask: Android上的Async/Await小帮手
- Android插件化框架
- [Angular] Use :host-context and the ::ng-deep selector to apply context-based styling
- Android开发学习
- django创建app
- AndroidThermal-engine