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='' versionName='1.0'
sdkVersion:''
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情况吧