appium常用命令

1、将控件或元素从一个位置(x,y)拖动到另一个位置(x,y)

driver.swipe(x1,y1,x1,y2,time)

取出控件的四个角的坐标,如图:(此图也只是个例子)

从这些坐标中,可以看出。x的取值在361~649之间,y的值是744~844之间。然后定位在这些范围之内就可以了。例如(380,800)就可以定位上了,time为持续时间。

2、根据坐标点击元素

a1 = 60.0/1149.0
b1 = 1020.0/1329.0
print(a1)
print(b1)
X = driver.get_window_size()['width']
Y = driver.get_window_size()['height']
driver.tap([(a1*X,b1*Y)])
driver.tap([(60,1149),(1020,1329)], 2000)

3、安装apk包

--安装包路径为在电脑本地包路径

driver.install_app('D:\\study\\appium\\scripts\\PublicCloud_stg2_v1.7.0-20201102-170139.apk')

4、卸载apk包

--apk包名(com.mlearning.hrtob)

driver.remove_app('com.mlearning.hrtob')

 5、启动应用

driver.launch_app()

启动时如果不想清楚历史数据,启动服务时需要添加参数:desired_caps['noReset'] = "True"

 

 6、关闭应用

driver.close_app()

这个方法并非真正的关闭,而是切回后台

7、真实关闭应用

driver.quit()

8、将应用置于后台

driver.backgroup_app()

9、应用重置

driver.reset()

 10、按压

press()

开始按压一个元素或坐标点(x,y)。其实就是通过手指按压手机屏幕的某个位置
press(self, el=None, x=None, y=None)
此方法默认需要三个参数,点击的元素,触摸屏的 x 坐标与 y 作标。三个参数都非必传
TouchAction(driver).press(el).release().perform()
TouchAction(driver).press(x=0,y=308).release().perform()
除了 press()方法之外,本例中还用到了别外两个新方法
relese()
结束的行动取消屏幕上的指针。内部培训文档,半成品,不外传
Perform()
执行的操作发送到服务器的命令操作
11、长按控件
long_press()--通过元素暂时无法捕捉到对应的位置元素,通过坐标点可正常捕捉
开始按压一个元素或坐标点(x,y)。
long_press(self, el=None, x=None, y=None, duration=1000)
相比 press()方法,long_press()多了一个入参,既然晃长按,得有按的时间吧。duration 以毫秒为单位。
1000 表示按一秒钟。其用法与 press()方法相同。
例:
TouchAction(driver).long_press(el).release().perform()
TouchAction(driver).long_press(x=0,y=308).release().perform()
TouchAction(driver).long_press(el,duration=2000).release().perform()
12、点击控件
tap()
对一个元素或控件执行点击操作。
tap(self, element=None, x=None, y=None, count=1)
相比上面两个方法,多了 count 的入参。个人猜测是点击的控件的次数,默认为 1 次。用法参考 press()。
例:
TouchAction(driver).tap(el).release().perform()
TouchAction(driver).tap(x=0,y=308).release().perform()
TouchAction(driver).tap(el,count=2).release().perform()
 13、移动
move_to()
将指针(光标)从过去指向指定的元素或点。
move_to(self, el=None, x=None, y=None)
其用法参考 press()方法。
例:
TouchAction(driver).move_to(el).release().perform()
TouchAction(driver).move_to(x=0,y=308).release().perform()
 14、获取当前activity
driver.current_activity
得到当前应用的 activity。只适用于 android。此方法不需要括号“()”或入参。
15、滑动
driver.swipe(75, 500, 75, 0, 0.8)
模拟用户滑动。将控件或元素从一个位置(x,y)拖动到另一个位置(x,y)
swipe(self, start_x, start_y, end_x, end_y, duration=None)
start_x:开始滑动的 x 坐标。
start_y:开始滑动的 y 坐标。
end_x:结束滑动的 x 坐标。
end_y:结束滑动的 y 坐标。
duration:滑动的时间,单位为ms,时间设置太小,短时间内就无法滑动了
16、 图片放大缩小
参考:https://www.pianshen.com/article/2833599307/
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
#缩小
def pinch():
action1=TouchAction(driver)
action2=TouchAction(driver)
pinch_action=MultiAction(driver)

action1.long_press(x=x*0.2,y=y*0.2, duration=2000).wait(1000).move_to(x=x*0.4,y=y*0.4).wait(1000).release()
action2.long_press(x=x*0.8,y=y*0.8, duration=2000).wait(1000).move_to(x=x*0.6,y=y*0.6).wait(1000).release()

pinch_action.add(action1,action2)
print('start pinch...')
pinch_action.perform()
#放大
def zoom():
action1 = TouchAction(driver)
action2 = TouchAction(driver)
zoom_action = MultiAction(driver)
action1.long_press(x=x * 0.4, y=y * 0.4, duration=2000).wait(1000).move_to(x=x * 0.2, y=y * 0.2).wait(1000).release()
action2.long_press(x=x * 0.6, y=y * 0.6, duration=2000).wait(2000).move_to(x=x * 0.8, y=y * 0.8).wait(1000).release()

zoom_action.add(action1,action2)
print("start zoom...")
zoom_action.perform()
 17、上下文操作
--获取可用上下文
      driver.contexts
--获取当前可用上下文
driver.current_context
--切换到默认上下文
driver.switch_to.context(None)
 

----------待更新中-----------------

 




posted @ 2020-11-09 19:55  啊洽  阅读(169)  评论(0编辑  收藏  举报