app自动化测试——高级控件交互方法

在这里插入图片描述


一、Actions

执行一系列或多个键盘和指针(触摸、鼠标、触控笔)操作链

二、用法

定义 ActionChains 实例
定义输入源
定义动作

安装手势密码锁 app(TouchAction.apk)
打开应用
点击【设置手势】
完成手势操作(如图)

在这里插入图片描述

定义输入源:

actions.w3c_actions = ActionBuilder(self.driver, mouse=PointerInput(interaction.POINTER_TOUCH,"touch"))
按下:pointer_down()
抬起:release()
暂停:pause(时长)

perform():执行

from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.actions import interaction
from selenium.webdriver.common.actions.action_builder import ActionBuilder
from selenium.webdriver.common.actions.pointer_input import PointerInput



class TestActionChain:

    def setup(self):
        caps = {
    
    }
        caps["platformName"] = "Android"
        caps["deviceName"] = "127.0.0.1:7555 device"
        caps["appPackage"] = "cn.kmob.screenfingermovelock"
        caps["appActivity"] = "com.samsung.ui.FlashActivity"
        caps["noReset"] = "true"
        caps["ensureWebviewsHavePages"] = True
        caps["automationName"] = 'uiautomator2'  # todo 安卓工作引擎
        self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
        self.driver.implicitly_wait(8)

    def test_action(self):
        #设置手势
        el1 = self.driver.find_element(by=AppiumBy.ID, value="cn.kmob.screenfingermovelock:id/patternTxt")
        el1.click()
        #定义ActionChains实例
        actions = ActionChains(self.driver)
        #定义输入源
        actions.w3c_actions = ActionBuilder(self.driver, mouse=PointerInput(interaction.POINTER_TOUCH,"touch"))
        #定义动作 按下——》滑动——》抬起
        actions.w3c_actions.pointer_action.move_to_location(118, 176)
        actions.w3c_actions.pointer_action.pointer_down()
        actions.w3c_actions.pointer_action.move_to_location(355, 176)
        actions.w3c_actions.pointer_action.pause(1) #todo 暂停1秒
        actions.w3c_actions.pointer_action.move_to_location(595, 176)
        actions.w3c_actions.pointer_action.pause(1)
        actions.w3c_actions.pointer_action.move_to_location(595, 416)
        actions.w3c_actions.pointer_action.pause(1)
        # 最有一个点
        actions.w3c_actions.pointer_action.move_to_location(595, 650)
        #抬起
        actions.w3c_actions.pointer_action.release()
        #执行
        actions.perform()

猜你喜欢

转载自blog.csdn.net/YZL40514131/article/details/129637957