1. 程式人生 > >8.0 TochAction各種用法

8.0 TochAction各種用法

實例 .com 自己 時間 發現 element -a orm xxx

1.滑動---TouchAction 支持相對坐標、絕對坐標、Element

註意看頂部的導入TouchAction這個庫..

技術分享圖片

#實例化
action = TouchAction(driver)
#press  其實位置   wait從起點滑動到終點的滑動時間  move_to終點位置   release滑動完成
action.press(x=0.5,y=0.7).wait(ms=5000).move_to(x=0.5,y=0.1).release()
action.perform()  #完成

TouchAction支持相對坐標和絕對坐標上下兩種都是可行的,或者:

#實例化
action = TouchAction(driver)
#press 起點位置 wait從起點到終點的滑動時間 move_to終點位置 release滑動完成 action.press(x=346,y=985).wait(ms=5000).move_to(x=346,y=200).release() action.perform() #完成

那麽:如果是類似解鎖九宮格的滑動呢...so ez啦,把第一個終點當成起點繼續給我滑就O了!

#實例化
action = TouchAction(driver)
#press  起點位置   wait從起點到終點的滑動時間  move_to終點位置   release滑動完成
action.press(x=346,y=985).wait(ms=5000).move_to(x=346,y=200).wait(ms=500).move_to(xxx).wait(ms=500).move_to(xxx).wait(ms=500).move_to(xxx).release()
action.perform()  
#完成

2.長按元素兩種方式

    直接修改上面代碼,既然是長按--那麽就是說---起點坐標等於終點坐標所以:

    

#實例化
action = TouchAction(driver)
#press  其實位置   wait從起點滑動到終點的滑動時間  move_to終點位置   release滑動完成
action.press(x=0.5,y=0.7).wait(ms=5000).move_to(x=0.5,y=0.7).release()
action.perform()  #完成發送指令到服務器

    那麽在深入理解一下---既然是長按----那麽只有起點坐標--和滑動時間--不給他終點時間呢

----是不是說就是按下去之後--等著就可以了--所以不給終點坐標也是OK的!

#實例化
action = TouchAction(driver)
#press  其實位置   wait從起點滑動到終點的滑動時間  move_to終點位置   release滑動完成
action.press(x=0.5,y=0.7).wait(ms=5000)..release()
action.perform()  #完成

3.單擊 tap——也支持相對坐標和絕對坐標

  • Driver.tap[(100,100)])或者Driver.tap[(0.1,0.2)]---這是一種單擊方式,這個賊簡單了...直接拿著用就妥了
  • so使用 TouchAction呢? 講道理肯定是可以的

    

#實例化
action = TouchAction(driver)
#press  其實位置   wait從起點滑動到終點的滑動時間  move_to終點位置   release滑動完成
action.tap([(100,100)]).release()
action.perform()  #完成

結果:如下圖所示,很明顯涼了啊 兄碟---

技術分享圖片

提示沒有屬性id ,感覺這個報錯有點騷--看的不是太懂,但是講道理應該是可以的,so....我看了一波源碼---發現,如下圖所示,,,很明顯是支持的...但是需要給出xy坐標的key----so-----tapTouchAction下的用法和直接用是不一樣的,

技術分享圖片

Too so TouchAction+tap點擊改一下語法,給出XY坐標的key,如下所示

技術分享圖片

結果:很舒服--OK的

代碼:

#實例化
action = TouchAction(driver)
#press  其實位置   wait從起點滑動到終點的滑動時間  move_to終點位置   release滑動完成
action.tap(x=0.13,y=0.31).release()
action.perform()  #完成

那麽問題又來了--這個可以單擊,那麽搞一個tow擊可以不

技術分享圖片

結果:還是很明顯可以的--

備註:有位大兄弟問我,他是按照這個寫的,但是一直點擊......我這裏是寫的點擊二十次...是為了把指針打開之後方便看到效果.....

所以:TouchAction用法

滑動:

#實例化
action = TouchAction(driver)
#press  其實位置   wait從起點滑動到終點的滑動時間  move_to終點位置   release滑動完成
action.press(x=0.5,y=0.7).wait(ms=5000).move_to(x=0.5,y=0.1).release()
action.perform()  #完成

長按:

#實例化
action = TouchAction(driver)
#press  其實位置   wait從起點滑動到終點的滑動時間  move_to終點位置   release滑動完成
action.press(x=0.5,y=0.7).wait(ms=5000)..release()
action.perform()  #完成

點擊:

#實例化
action = TouchAction(driver)
#press  其實位置   wait從起點滑動到終點的滑動時間  move_to終點位置   release滑動完成
action.tap(x=0.13,y=0.31).release()
action.perform()  #完成

雙擊:

#實例化
action = TouchAction(driver)
#press  其實位置   wait從起點滑動到終點的滑動時間  move_to終點位置   release滑動完成
action.tap(x=0.13,y=0.31,count=20).release()
action.perform()  #完成

備註:再次建議新手打開開發者選項裏面的 指針位置,打開之後點擊屏幕會出現如圖所示的坐標,後續的手機操作,你可以直接看到代碼是否執行...

技術分享圖片

那麽TouchAction的用法還有其他嗎......

事實上真的還以用來搞點事情:

比如---appium自帶的那個 叫啥來著 scroollIntoview....好像是這麽拼的..就是一個滑動查找元素的方法--不知道其他人用這個是否穩定...反正我第一點是記不住這個單詞...第二點是感覺滑動起來不太穩定..所以我自己用TouchAction封裝了一個簡單粗暴的滑動查找元素的方法--後面應該會講到滑動查找元素...

8.0 TochAction各種用法