appium 执行demo
appium很早就了解了,一直没有之际操作过,最近把官网的demo搞下来执行了一遍,还是很有意思的
经过测试是可以跑起来的,不过跑得过程中,输入法需要默认为英文的,如果是中文的码输入的时候有点问题,可以自行体验
import os from selenium import webdriver # Returns abs path relative to this file and not cwd PATH = lambda p: os.path.abspath( os.path.join(os.path.dirname(__file__), p) ) """ desired_caps = {} desired_caps['automationName'] = 'Appium' desired_caps['platformName'] = 'Android' desired_caps['deviceName'] = 'sunx' desired_caps['version'] = '4.4.2' desired_caps['app'] =PATH('D:\\ContactManager.apk') desired_caps['appPackage'] = 'com.example.android.contactmanager' desired_caps['appActivity'] = '.ContactManager' desired_caps['unicodeKeyboard'] = True desired_caps['resetKeyboard'] = True driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) el = driver.find_element_by_name("Add Contact") el.click() textfield = driver.find_element_by_id("com.example.android.contactmanager:id/contactNameEditText").send_keys("testest") textfield = driver.find_element_by_id("com.example.android.contactmanager:id/contactPhoneEditText").send_keys("188888888") driver.find_element_by_name("Save").click() driver.quit()
首先是环境配置,网上搜下
然后是启动
输入appium,启动appium服务
然后执行上面的脚本,脚本要注意app的位置,以及初始化中的个参数需要与本机对应
ps:apppackage和activity,怎样获取呢?android有现成的工具,就是他!aapt
adt-bundle-windows-x86-20140321\sdk\build-tools\android-4.4.2这个目录下的aapt.exe
写个例子:
aapt dump badging D:\yourapp.apk,然后查找,我把参数用删除线标记了,填上去就ok了
package: name='com.ma.huoying' versionCode='1' versionName='1.0' sdkVersion:'3' application-label:'鐏奖蹇嶈€? application-icon-160:'res/drawable-hdpi/browser.png' application-icon-240:'res/drawable-hdpi/browser.png' application-icon-320:'res/drawable-hdpi/browser.png' application-icon-480:'res/drawable-hdpi/browser.png' application: label='鐏奖蹇嶈€? icon='res/drawable-hdpi/browser.png' application-debuggable launchable-activity: name='com.ma.huoying.MainActivity' label='鐏奖蹇嶈€? icon='' uses-permission:'android.permission.INTERNET'
元素定位:
appium的元素定位,一般就可以使用adt-bundle-windows-x86-20140321\sdk\tools\uiautomatorviewer.bat
这个工具来查看层级关系,通过xpath定位或者id神马的,具体看app情况吧