移動自動化-swipe、scroll、drag、高級手勢等


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文件

  

 

 

  

       

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM