在本文中将着重对“常用api”进行探讨。
本文大致可以分为三部分,
一、键盘操作
二、TouchAction操作
三、其他操作
一、键盘操作
主要就是一个presskeycode,可以模仿几乎所有的手机上实体按键,虚拟按键的操作
python实现:driver.pressKeyCode()
常用参数:
KEYCODE_CALL 拨号键 5
KEYCODE_ENDCALL 挂机键 6
KEYCODE_HOME 按键Home 3
KEYCODE_MENU 菜单键 82
KEYCODE_BACK 返回键 4
KEYCODE_POWER 电源键 26
例:driver.pressKeyCode(4)
效果:点击返回键
二、TouchAction操作
先导入TouchAction类
from appium.webdriver.common.touch_actionimport TouchAction
再创建一个对象
action= TouchAction(driver)
1.长按
python实现:
action.long_press(driver.find_element_by_id("元素id"),3000).perform().release()
效果:长按元素3秒
2.光标移动
python实现:
action.moveTo(driver.find_element_by_id("元素id")).perform().release()
效果:将光标移动到目标元素上
3.点击
python实现:
action.tap(driver.find_element_by_id("元素id")).perform().release()
效果:点击元素
4.暂停
python实现:
action.wait(3000)
效果:暂停脚本运行3秒
三、其他操作
1.滑动
目前基本不存在单屏就能操控所有功能的app,所以滑动也是非常重要的
python实现:driver.swipe(x1, y1, x2, y2, 延时z)
效果:从A点(x1,y1)滑动到B点(x2,y2),整个滑动过程时间z秒
由于各机型屏幕大小的差异,所以点到点的滑动,难免会存在不适配的情况,且滑动效果也差异较大
所以不建议将滑动点写死,而是获取到当前机型的屏幕尺寸,进行适配后再带入滑动点坐标
python实现:
# 获取屏幕宽和高
def getSize(driver):
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
return (x, y)
# 向上滑动
def swipeUp(driver):
l = getSize(driver)
x1 = int(l[0] * 0.5)
y1 = int(l[1] * 0.8)
y2 = int(l[1] * 0.22)
driver.swipe(x1, y1, x1, y2, 2000)
效果:从屏幕的(0.5,0.8)滑到屏幕的(0.5,0.22),延时2秒,实现了一个上滑的操作,大致滑动了一屏
注意这里不要把延时设的太短,否则就和人操作一样,一个很快的上滑,直接就到页面底端了
2.收起键盘
一般情况下键盘会自动收起,这里的收起键盘用于键盘不听话的时候
python实现:driver.hideKeyboard()
效果:收起键盘
感谢阅读,欢迎转载。
如有错误请及时指出,谢谢!
如有问题请留言,我懂的必然会回复!
共勉。