前言长按操作是经常会遇到的场景,通过driver可以直接调出long_press_keycode方法,但是这个方法是长按手机上某个按钮,比如长按电源键,长按home键。 定位ListView1.先看看哪些场景是ListView 2.像这种listview里面每行记录的id都是一样的,就用前面讲到的list定位,取下标就可以了 3.定位参考 # 定位聊天记录列表,选第一个长按
el = driver.find_elements_by_id("com.tencent.mm:id/apv")[0] 长按long_press1.长按的操作可以用前面讲到的TouchAction类里面的long_press方法操作 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交流群:512200893
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()
|
|