swipe 滑動事件
使用方法:driver.swipe(strat_x,start_y,end_x,end_y)
swipe通過driver使用
傳入起始的位置x和y,和結束的位置x和y
時間參數,越長滑動的越精准
默認的時間,大約是0.8s
獲取當前的時間戳time.time()
時間戳的含義是 從1970年到現在過了多少秒
scroll滑動事件
從一個元素滑動到另一元素,直到頁面自動停止
方法:scroll(origin_el,destination_el)
和swipe相比 都存在一定的“慣性”
drag拖拽事件
從一個元素滑動到另一個元素,第二個元素替代第一個元素原本屏幕上的位置
方法:drag_and_drop(origin_el,destination_el)
scroll和drag的區別:drag沒有“慣性”,都是使用元素進行傳參
和swipe相比,drag傳元素,swipe傳坐標,當swipe的時間足夠長的時候,和drag效果相同
ps:
1、find_element如果找到了某個元素 會將具體位置緩存在系統中,只要不重新獲取,就算已經跑出了屏幕外,也會認為元素在之前緩存的位置
2、只要某個元素在屏幕中出現了一部分,find_element也會正常找到
高級手勢TouchAction
是appiumDriver的輔助類,主要針對手勢操作、比如滑動、長按、拖動等
原理是將一系列的動作放在一個鏈條中發送到服務器,服務器接受到該鏈條后,解析各個動作,逐個執行
1、手指輕敲操作
模擬手指輕敲一下屏幕操作,方法:tap(element=None,x=None,y=None)
方法:perform() #發送命令到服務器執行操作
所有手勢都要通過perform()執行
2、手指按下和抬起操作
方法:press(elment=None,x=None,y=None)
方法:release() #結束動作,手指離開屏幕
參數:1、element:被定位到的元素
2、x:x軸的坐標
3、y:y軸的坐標
3、長按
long_press
4、手指移動操作
模擬手機滑動操作,如解鎖
方法:move_to(element=None,x=None,y=None)
參數:
1、x:相對於前一個元素的x軸偏移量
2、y:相對於前一個元素的y軸偏移量
5、什么是鏈條
一堆動作 通過 動作.動作.動作.perform 這一串動作就是鏈條
6、獲取手機時間
方法:device_time
代碼實現:print(driver.driver_time)
7、手機的高寬
8、發送鍵到設備
模擬系統鍵值的操作,比如操作home鍵,音量鍵,返回鍵等
方法:keyevent(keycode,metastate=None)
方法:press_keycode(keycode,metastate=None):
參數:
keycode 發送給設備的關鍵代碼
metastate 關於被發送的關鍵代碼的元信息,一般為默認值
代碼實現:
for i in range(3):
driver.keyevent(24)
9、操作手機通知欄
打開手機的通知欄,可以獲取通知欄的相關信息和元素操作
方法:open_notifications()
代碼實現:driver.open_notifications()
關閉導航欄,點擊返回按鈕
10、獲取手機當前網絡
方法:network_connection
代碼實現:print(driver.network_connection)
11、手機截圖
代碼實現:import os
driver.get_screenshot_as_file(os.getcwd()+os.sep+'./screen.png')
執行結果:當前目錄下會生成screen.png文件