最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

干貨|移動(dòng)端App自動(dòng)化之觸屏操作自動(dòng)化

2022-10-24 10:38 作者:愛(ài)測(cè)軟件測(cè)試  | 我要投稿

工作中我們經(jīng)常需要對(duì)應(yīng)用的頁(yè)面進(jìn)行手勢(shì)操作,比如滑動(dòng)、長(zhǎng)按、拖動(dòng)等,AppiumDriver 為我們提供一個(gè)模擬手勢(shì)操作的輔助類 TouchAction,可以通過(guò)它對(duì)手機(jī)屏幕進(jìn)行手勢(shì)操作。 具體用法參見(jiàn)鏈接:chromedriver下載地址與webview自動(dòng)化關(guān)鍵代碼 2

導(dǎo)入TouchAction

from appium.webdriver.common.touch_action import TouchAction

常用的手勢(shì)操作

TouchAction 提供的常用的手勢(shì)操作有如下操作:

  • Press 按下

  • release 釋放

  • move_to 移動(dòng)

  • tap 點(diǎn)擊

  • longPress 長(zhǎng)按

  • wait 等待

  • cancel 取消

  • perform 執(zhí)行

press

TouchAction 提供的 press( ) 方法可以實(shí)現(xiàn)對(duì)元素或者坐標(biāo)的按下操作。通常會(huì)結(jié)合 release( ) 方法實(shí)現(xiàn)對(duì)某個(gè)元素的點(diǎn)擊(包括按下和抬起兩個(gè)動(dòng)作)。 在某個(gè)控件上執(zhí)行 press 操作,用法如下:

press(WebElement el)

在坐標(biāo)為(x,y)的點(diǎn)執(zhí)行 press 操作,用法如下:

press(int x, int y)

release

釋放操作,可以結(jié)合其它的事件使用。代表該系列動(dòng)作的一個(gè)結(jié)束標(biāo)志。在某個(gè)控件上執(zhí)行釋放操作,用法如下:

release(WebElement el)

也可以在上一個(gè)操作結(jié)束之后執(zhí)行 release,不添加任何參數(shù),用法如下:

release()

move_to

以控件為目標(biāo),從一個(gè)點(diǎn)移動(dòng)到該目標(biāo)上,用法如下:

move_to(WebElement el)

以(x,y)點(diǎn)為目標(biāo),從一個(gè)點(diǎn)移動(dòng)到該目標(biāo),用法如下:

move_to(WebElement el, int x, int y)

tap

在某個(gè)控件的中心點(diǎn)上點(diǎn)擊一下,用法如下:

tap(WebElement el)

以(x,y)坐標(biāo)點(diǎn)為目標(biāo)點(diǎn)擊,用法如下:

tap(int x, int y)

以控件 el 的左上角為基準(zhǔn),沿著 x 軸向右移動(dòng) x 單位,沿著 y 軸向下移動(dòng) y 單位。在該點(diǎn)上點(diǎn)擊,用法如下:

tap(WebElement el, int x, int y)

longpress

長(zhǎng)按某一控件,用法如下:

long_press(WebElement el)

以(x,y)點(diǎn)為目標(biāo)實(shí)現(xiàn)長(zhǎng)按,用法如下:

long_press(int x, int y)

在控件的左上角的 x 坐標(biāo)偏移 x 單位,y 左邊偏移 y 單位的坐標(biāo)上長(zhǎng)按。用法如下:

long_press(WebElement el, int x, int y)

wait

等待,單位為毫秒。可以在操作事件的過(guò)程中,短暫的停留幾秒再繼續(xù)操作。用法如下:

wait(long timeout)

cancel

可以取消執(zhí)行事件鏈中的事件,用法如下:

cancel()

perform

執(zhí)行事件鏈中的事件,一般最后會(huì)調(diào)用這個(gè)方法,順序執(zhí)行事件鏈中的動(dòng)作。用法如下:

perform()

打開(kāi)測(cè)試應(yīng)用,從元素 “Views” 文本滑動(dòng)到 “Accessibility” 元素,創(chuàng)建一個(gè)測(cè)試文件 test_touchaction.py,代碼如下: 測(cè)試 app 官方下載地址:github.com/appium/appiu

#!/usr/bin/env python?

# -*- coding: utf-8 -*-?

from appium import webdriver?

from appium.webdriver.common.touch_action import TouchAction

class TestTouchAction(): ?

??def setup(self): ? ? ?

??caps = {} ? ? ??

?caps['platformName'] = 'Android' ? ??

? ?caps['platformVersion'] = '6.0' ?

?? ? ?caps['deviceName'] = 'emulator-5554' ??

? ? ?caps['appPackage'] = 'io.appium.android.apis' ? ? ? ?caps['appActivity'] = 'io.appium.android.apis.ApiDemos' ? ? ? ?self.driver = webdriver.Remote(\ ??

? ? ?"http://127.0.0.1:4723/wd/hub", caps) ? ? ? ?self.driver.implicitly_wait(5) ?

?def teardown(self): ? ?

? ?self.driver.quit() ?

??def test_touchaction_unlock(self): ? ? ?

??# 點(diǎn)擊 Views ? ? ??

?el1 = self.driver.find_element_by_accessibility_id( ? ? ?

?? ? ?"Views") ??

? ? ?# 點(diǎn)擊 Accessibility ? ??

? ?el2 = self.driver.find_element_by_accessibility_id( ? ? ? ? ? ?"Accessibility") ? ??

? ?# TouchAction 滑動(dòng)操作 ? ??

? ?action = TouchAction(self.driver) ? ? ? ?action.press(el1).wait(100).move_to\ ? ? ? ?(el2).wait(100).release().perform()

上面代碼可以看出,首先定位兩個(gè)元素 el1 與 el2 ,分別作為滑動(dòng)過(guò)程中起點(diǎn)元素和終點(diǎn)元素,將我們滑動(dòng)的起點(diǎn)元素與終點(diǎn)元素找到之后,創(chuàng)建一個(gè) TouchAction 對(duì)象,調(diào)用里面的 press( ) 方法實(shí)現(xiàn)起點(diǎn)元素的點(diǎn)擊,使用 wait( ) 方法在事件之間添加等待,使用 move_to( ) 方法完成手勢(shì)的移動(dòng)操作,然后調(diào)用 release( ) 方法來(lái)完成手勢(shì)的抬起,最后調(diào)用 perform( ) 方法對(duì)添加到 TouchAction 中的事件鏈順序執(zhí)行。


干貨|移動(dòng)端App自動(dòng)化之觸屏操作自動(dòng)化的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
惠州市| 绥芬河市| 平塘县| 大兴区| 谢通门县| 永春县| 牟定县| 清远市| 孝昌县| 郯城县| 崇义县| 泌阳县| 宿松县| 勐海县| 望都县| 电白县| 景德镇市| 津市市| 福建省| 莱阳市| 宁远县| 宜兴市| 龙游县| 大田县| 商都县| 绥阳县| 南平市| 姜堰市| 五原县| 长宁区| 平泉县| 马龙县| 东宁县| 平谷区| 玉田县| 伽师县| 新昌县| 和平区| 偃师市| 岐山县| 固安县|