首先Appuim的安装情参照://www.greatytc.com/p/55fef32ff505
先来看一下运行Android的case,我的是基于python的:
#coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import os
import glob
import unittest
from time import sleep
from appium import webdriver
PLATFORM_VERSION = '4.4'
class AndroidWebViewTests(unittest.TestCase):
def setUp(self):
# app = os.path.abspath( os.path.join(os.path.dirname(__file__),'../../apps/selendroid-test-app.apk'))
desired_caps = {
# 'app': app,
'appPackage': 'com.apricotforest.dossier',
'appActivity': '.medicalrecord.activity.main.MainLoadingActivity',
'platformName': 'Android',
'platformVersion': PLATFORM_VERSION,
'deviceName': 'XiaoMI',
'udid': '84303468',
}
if (PLATFORM_VERSION != '4.4'):
desired_caps['automationName'] = 'selendroid'
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
def test_webview(self):
if (PLATFORM_VERSION == '4.4'):
button = self.driver.find_element_by_id('btn_login')
button.click()
#self.driver.switch_to.context('WEBVIEW_0')
#input_field = self.driver.find_element_by_id('name_input')
#sleep(1)
#input_field.clear()
#input_field.send_keys('Appium User')
#input_field.submit()
# test that everything is a-ok
#source = self.driver.page_source
#self.assertNotEqual(-1, source.find('This is my way of saying hello'))
#self.assertNotEqual(-1, source.find('"Appium User"'))
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(AndroidWebViewTests)
unittest.TextTestRunner(verbosity=2).run(suite)
里面需要注意的是:
uuid是你待测试的Android机的deviceID,可以通过adb devices获得。
Android的automationName是selendroid,一定要设置。
接下来就可以跑测试了:
首先,启动appium:
bogon:~ xingshulin$ appium -p 4723
[Appium] Welcome to Appium v1.6.3
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
然后就是运行case了,对于python,就是python android_webview.py
bogon:python xingshulin$ python android_webview.py
test_webview (__main__.AndroidWebViewTests) ... ok
----------------------------------------------------------------------
Ran 1 test in 14.512s
OK
成功!
对了,如果想获得Android手机上控件的信息,就用Android SDK提供的uiautomatorviewer吧。