appium+python自動化48-長按(long_press)

前言

長按操做是常常會遇到的場景,經過driver能夠直接調出long_press_keycode方法,可是這個方法是長按手機上某個按鈕,好比長按電源鍵,長按home鍵。
長按某個元素或者長按屏幕上某個點,就須要用到TouchAction裏面提供的long_press操做了python

定位ListView

1.先看看哪些場景是ListViewandroid

2.像這種listview裏面每行記錄的id都是同樣的,就用前面講到的list定位,取下標就能夠了web

3.定位參考chrome

# 定位聊天記錄列表,選第一個長按
el = driver.find_elements_by_id("com.tencent.mm:id/apv")[0]

長按long_press

1.長按的操做能夠用前面講到的TouchAction類裏面的long_press方法操做app

def long_press(self, el=None, x=None, y=None, duration=1000):
        # 做者:上海-悠悠 QQ交流羣:512200893
        長按操做,能夠傳定位的元素對象,也能夠傳座標
        el 是定位元素的對象
        x,y是傳座標
        duration是按住的持續時間,默認1000,單位是毫秒

2.實現方法學習

# 長按
TouchAction(driver).long_press(el).perform()

參考代碼

# coding:utf-8
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
import time

# 做者:上海-悠悠 QQ交流羣:330467341

desired_caps = {
                'platformName': 'Android',
                'platformVersion': '7.0',
                'deviceName': 'A5RNW18316011440',
                'appPackage': 'com.tencent.mm',
                'appActivity': '.ui.LauncherUI',
                'automationName': 'Uiautomator2',
                # 'unicodeKeyboard': True,
                # 'resetKeyboard': True,
                'noReset': True,
                # 'chromeOptions': {'androidProcess': 'com.tencent.mm:tools'}
                }

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)

# 定位聊天記錄列表,選第一個長按
el = driver.find_elements_by_id("com.tencent.mm:id/apv")[0]

# 長按
TouchAction(driver).long_press(el).perform()
time.sleep(3)

# 定位選項框‘刪除該聊天’
driver.find_element_by_xpath("//*[@text='刪除該聊天']").click()
time.sleep(3)

# 定位選項框‘取消’
driver.find_element_by_id("com.tencent.mm:id/alk").click()

在學習過程當中有遇到疑問的,能夠appium+python QQ羣交流:330467341ui

相關文章
相關標籤/搜索