appium---模擬點擊事件

  在作自動化的過程當中都會遇到一些沒法定位到的地方,或者經過元素怎麼都定位不成功的地方,這個時候咱們可使用必殺技,經過座標定位。具體的怎麼操做呢? html

swipe點擊事件

前面安靜寫過一篇關於swipe的滑動app頁面的,其實swipe也能夠模擬點擊事件,只要咱們把後面的響應時間變小,而後座標變成同一個座標。詳情swipe的用法能夠參考appium---App頁面滑動python

經過工具查看到這個登陸/註冊按鈕座標爲[390,831][522,873],算得出來大概座標爲[470,850]web

 

 話很少說直接上代碼,經過swipe進行模擬點擊(註冊/登陸)按鈕數組

# coding:utf-8
from appium import webdriver
import time
desired_caps = {
                 'platformName': 'Android',  # 測試版本
                 'deviceName': 'emulator-5554',   # 設備名
                 'platformVersion': '5.1.1', # 系統版本
                "appPackage": "com.taobao.taobao",   # app包名
                "appActivity": "com.taobao.tao.welcome.Welcome",   # 啓動launch Activity
                "noReset": True,  # 不清空數據
                        }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 淘寶加載慢,加個延遲。
time.sleep(16)
x1 = int(470)
y1 = int(850)
driver.swipe(x1,y1,x1,y1,500)

一個方法能夠多種用法,可是python怎麼會這樣對待咱們呢?固然有比這更好的方法app

tap

tap方法表示點擊事件,經過座標的方式進行點擊,通常用於元素難於定位的時候工具

源碼測試

def tap(self, positions, duration=None):
        """Taps on an particular place with up to five fingers, holding for a certain time
      # 用五指輕敲一個特定的地方,保持必定的時間
        :Args:
         - positions - an array of tuples representing the x/y coordinates of
        # 表示x/y座標的元組數組
         the fingers to tap. Length can be up to five.
         - duration - (optional) length of time to tap, in ms
     # 持續時間單位毫秒
        :Usage:
            driver.tap([(100, 20), (100, 60), (100, 100)], 500)
        """

這裏咱們能夠直接經過右側bonds屬性上座標直接定位,不用咱們在一個個計算spa

# coding:utf-8
from appium import webdriver
import time
desired_caps = {
                 'platformName': 'Android',  # 測試版本
                 'deviceName': 'emulator-5554',   # 設備名
                 'platformVersion': '5.1.1', # 系統版本
                "appPackage": "com.taobao.taobao",   # app包名
                "appActivity": "com.taobao.tao.welcome.Welcome",   # 啓動launch Activity
                "noReset": True,  # 不清空數據
                        }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(16)
# 經過tap模擬點擊
driver.tap([(390,831),(522,873)],500)

 

注意:更換手機跑腳本的時候,咱們必定要更換座標,每一個手機的座標可能都不一樣。3d

 

其實方法還有不少種,這裏就先不一個個介紹了,持續更新中~~~code

相關文章
相關標籤/搜索