4. appium 手机手势:tap、press、long_press、wait、move_to、release、perform
程序员文章站
2022-03-20 09:21:32
...
#swipe()滑动
# swipe(x,y,e_x,e_y) 滑动页面参数设置(开始x,开始y,结束x,结束y,滑动时间默认)
driver.swipe(100,1000,100,500) //传入的是坐标,有惯性
# 滑动:scroll()
ele_up=driver.find_element_by_xpath("//*[contains(@text,'Network & internet')]")
ele_down=driver.find_element_by_xpath("//*[contains(@text,'Apps & notifications')]")
driver.scroll(ele_down,ele_up) //传入的是元素,有惯性
#driver.drag_and_drop(ele_down,ele_up)
driver.drag_and_drop(ele_down,ele_up) //传入的时元素,没有惯性
元素定位:
获取ele_up、ele_down元素的文本值:
ele_up:
ele_down:
手势:
导入包:
from appium.webdriver.common.touch_action import TouchAction
手势:
-
tap()
-
press()
-
long_press()
-
wait()
-
move_to()
-
release()
所有手势需要perform()执行
tap(element,x,y,count)
#定位一个元素:driver.find_element_by_id("android:id/title")
# .tap(ele)轻敲
ele=driver.find_element_by_id("android:id/title")
TouchAction(driver).tap(ele).perform()
#元素ele,(x,y)都有,则按元素ele位置:
TouchAction(driver).tap(ele,100,200).perform()
#轻敲的位置定位按(x,y)坐标:
TouchAction(driver).tap(x=100,y=200).perform()
press()
1.获取包名和启动名:
com.android.gesture.builder/.GestureBuilderActivity
.press按下:某一点或某一元素:坐标: (x=500,y=500)
TouchAction(driver).press(x=500,y=500).perform()
# .press(x=500,y=500).release():相当于一次tap():
TouchAction(driver).press(x=500,y=500).release().perform()
# .press(x=500,y=500).wait(5000).release() 相当于一次长按:
# .wait()单位:ms
TouchAction(driver).press(x=500,y=500).wait(5000).release().perform()
long_press( ) 长按
# 长按:
.long_press(element,x,y,duration)
TouchAction(driver).long_press(x=500,y=500).perform()
move_to(x,y)
移动:x,y移动的偏移量
(TouchAction(driver).press(x,y)
.move_to(x,y)
.move_to(x,y)
.release()
.perform())
#获取手机时间
a=driver.device_time
print(a)
#获取手机的分辨率:
b=driver.get_window_size()
print(b)
#获取手机的宽
print(b["width"])
#获取手机的高
print(b["height"])
运行结果:
上一篇: Java线程池的几种实现方法和区别介绍
下一篇: Java反射机制