Appium用uiautomator无法对WebView进行className定位,所以只能模拟动作。可以用android sdk自带的monitor工具,先进行截图,再用任意图像处理软件,获取截图的x,y坐标。然后再用模拟动作,进行点击。
Appium模拟屏幕点击,有两种方法,一种是直接用tap方法,一种是导入TouchAction,用里边的tap方法。
TouchAction可用事件有:
- 短按 (press)
- 释放 (release)
- 移动到 (moveTo)
- 点击 (tap)
- 等待 (wait)
- 长按 (longPress)
- 取消 (cancel)
- 执行 (perform)
#coding=utf-8 from appium import webdriver #from appium.webdriver.common.touch_action import TouchAction import time try: desired_caps = { 'platformName':'Android', 'platformVersion':'4.2.2', 'deviceName':'Android Emulator', 'unicodeKeyboard':True, 'resetKeyboard':True, 'appPackage':'com.jingdong.app.mall', 'appActivity':'.MainActivity' } driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps) print '*'*25+'start'+'*'*25 el = driver.find_elements_by_android_uiautomator('new UiSelector().className("android.widget.TextView")') for i in el: text = i.text print text if text == u'领京豆': i.click() break print '*'*25+'end'+'*'*25 time.sleep(5) #TouchAction(driver).tap(x=358,y=999).perform() driver.tap([(358,999)]) time.sleep(5) finally: driver.quit()