一.tap方法

appium中模拟手指点击方法,叫tap,有两个参数,元素位置和点击持续时间。一般语法是这样的tap([(x1,y1),(x2,y2)],100), 我们通过手机百度中,利用tap方法来点击摄像头按钮来举例。

1.元素定位

 

记住上面的元素坐标,下面需要用到。

2.tap代码实现

import os  
import time  
from appium import webdriver  
  
desired_caps ={ 'platformName': 'Android',  
                'platformVersion': '6.0.1',  
                'deviceName': 'KIW-AL10',  
                'noReset': True,  
                'appPackage': 'com.baidu.searchbox',  
                'appActivity': 'com.baidu.searchbox.SplashActivity',  
                'unicodeKeyboard': True,  
                'resetKeyboard': True  
                }  
  
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)#启动app  
time.sleep(3) #app启动后等待3秒,方便元素加载完成  
#模拟手指点击操作  
driver.tap([(918,413),(1026,521)], 100)  

解释:上面tap方法中位置的元素点坐标是通过ui automator viewer获取,持续时间100是指100毫秒。

2.相对坐标
手机坐标定位 ;打开手机自带的开发者选项-指针位置打开,点击屏幕可以得到该点的绝对坐标
相对坐标;手机得到的只是绝对坐标,如果换了一个手机屏幕大小不一样,则定位不到,需要 用代码实现

以下代码实现

#点击左上角退出订单
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
print(driver.get_window_size()) #可以获取当前手机屏幕大小 打印出为 1080,2244
a = 90/1080 #90,150为该点的手机屏幕坐标
b = 150/2244
driver.tap([(a*x, b*y)],2) #此为相对坐标