8.0 TochAction各種用法
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() #完成發送指令到服務器
那麽在深入理解一下---既然是長按----那麽只有起點坐標--和滑動時間--不給他終點時間呢
#實例化 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....我看了一波源碼---發現,如下圖所示,,,很明顯是支持的...但是需要給出x和y坐標的key----so-----tap在TouchAction下的用法和直接用是不一樣的,
Too so :TouchAction+tap點擊改一下語法,給出X,Y坐標的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各種用法