亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        技術(shù)分享 觸屏操作自動化

        導(dǎo)入TouchAction

        from appium.webdriver.common.touch_action import TouchAction

        • Java 版本

        import io.appium.java_client.TouchAction;

        常用的手勢操作

        press 按下

        TouchAction 提供的常用的手勢操作有如下操作:

        • press 按下
        • release 釋放
        • move_to/moveTo 移動
        • tap 點擊
        • long_press/longPress 長按
        • wait 等待
        • cancel 取消
        • perform 執(zhí)行

        TouchAction 提供的 press( ) 方法可以實現(xiàn)對元素或者坐標(biāo)的按下操作。通常會結(jié)合 release( ) 方法實現(xiàn)對某個元素的點擊(包括按下和抬起兩個動作)。

        在某個控件上執(zhí)行 press 操作,用法如下:

        • Python 版本

        按下某個元素,用法如下:

        press(WebElement el)

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

        press(int x, int y)

        • Java 版本

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

        press(int x, int y)

        release 釋放

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

        • Python 版本

        release(WebElement el)

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

        release()

        • Java 版本

        release()

        移動

        以控件為目標(biāo),從一個點移動到該目標(biāo)上,用法如下:

        • Python 版本

        move_to(WebElement el)

        以(x,y)點為目標(biāo),從一個點移動到該目標(biāo),用法如下:

        move_to(WebElement el, int x, int y)

        • Java 版本

        以(x,y)點為目標(biāo),從一個點移動到該目標(biāo),用法如下:

        moveTo(WebElement el, int x, int y)

        tap 點擊

        在某個控件的中心點上點擊一下,用法如下:

        • Python 版本

        tap(WebElement el)

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

        tap(WebElement el, int x, int y)

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

        tap(int x, int y)

        • Java版本

        只提供坐標(biāo)點擊,用法如下:

        tap(int x, int y)

        長按

        長按某一控件,用法如下:

        • Python 版本

        long_press(WebElement el)

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

        long_press(int x, int y)

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

        long_press(WebElement el, int x, int y)

        • Java 版本

        只提供坐標(biāo)點擊,用法如下:

        longPress(int x, int y)

        等待

        等待,單位為秒??梢栽诓僮魇录倪^程中,短暫地停留幾秒再繼續(xù)操作。用法如下:

        • Python 版本

        wait(long timeout)

        • Java 版本

        wait(long timeout)

        cancel 取消

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

        • Python 版本

        cancel()

        • Java 版本

        cancel()

        執(zhí)行 perform

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

        • Python 版本

        perform()

        • Java 版本

        perform()

        案例

        打開測試應(yīng)用,從元素 “Views” 文本滑動到 “Accessibility” 元素,創(chuàng)建一個測試文件代碼如下:

        測試 app 官方下載地址:appium/sample-code/apps at master · appium/appium · GitHub

        #!/usr/bin/env python# -*- coding: utf-8 -*-# 測試文件 test_touchaction.pyfrom appium import webdriverfrom appium.webdriver.common.touch_action import TouchActionclass 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): # 點擊 Views el1 = self.driver.find_element_by_accessibility_id( “Views”) # 點擊 Accessibility el2 = self.driver.find_element_by_accessibility_id( “Accessibility”) # TouchAction 滑動操作 action = TouchAction(self.driver) action.press(el1).wait(100).move_to (el2).wait(100).release().perform()public class TouchActionTest { static AppiumDriver driver; @BeforeAll public static void beforeAll() throws MalformedURLException { DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability(“deviceName”, “emulator-5554”); caps.setCapability(“platformName”, “Android”); caps.setCapability(“appPackage”, “io.appium.android.apis”); caps.setCapability(“appActivity”, “io.appium.android.apis. ApiDemos”); URL appiumServer = new URL(“http://127.0.0.1:4723/wd/hub”); driver = new AndroidDriver(appiumServer, caps); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } @Test void test() { // 創(chuàng)建 TouchAction 對象 TouchAction action = new TouchAction(driver); // TouchAction 滑動操作 action.press(PointOption.point((int) (width * 0.5), (int) (height * 0.8))).waitAction(WaitOptions. waitOptions(Duration.ofSeconds(2))).moveTo( PointOption.point((int) (width * 0.5), (int) (height * 0.2))).release().perform(); }}

        以上兩段代碼實現(xiàn)了相同的操作,創(chuàng)建了一個 TouchAction 對象,調(diào)用里面的 press() 方法實現(xiàn)起點元素的點擊,使用 wait() 方法在事件之間添加等待,使用 move_to()/moveTo() 方法是完成手勢的移動操作,然后調(diào)用 release() 方法來完成手勢的抬起,最后調(diào)用 perform() 方法對添加到 TouchAction 中的事件鏈順序執(zhí)行。

        鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年6月22日 15:21
        下一篇 2022年6月22日 15:22

        相關(guān)推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時間:周一至周五,10:30-18:30,節(jié)假日休息