对于应用中图案解锁的功能,使用appium可以很好的完成这个功能。
这里以锁屏时图案解锁为例:
图案设置为:
在该锁屏界面解锁:
获取图案中9个点的坐标时,可以使用sdk tools目录下的hierarchyviewer工具获取。
下面贴上图案解锁的代码:
package com.xuxu.autotest; import java.net.URL; import io.appium.java_client.AppiumDriver; import io.appium.java_client.TouchAction; import io.appium.java_client.android.AndroidDriver; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.remote.DesiredCapabilities; public class UnlockTest { private AppiumDriver driver; public UnlockTest() { } @Before public void setUp() throws Exception { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "Android Emulator"); capabilities.setCapability("platformVersion", "4.4"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("appPackage", "com.android.settings"); capabilities.setCapability("appActivity", ".Settings"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); sleep(2000); } @After public void tearDown() throws Exception { driver.quit(); } @Test public void test() { driver.sendKeyEvent(26); // 按power键锁屏 sleep(3000); driver.sendKeyEvent(26); // 按power键点亮屏幕 driver.tap(1, 540, 960, 500); // 触摸屏幕中间,显示图案解锁框 sleep(2000); //图案解锁 TouchAction action = new TouchAction(driver); action.press(215, 870).moveTo(540, 870).moveTo(862, 870) .moveTo(540, 1195).moveTo(215, 1195).moveTo(215, 1518) .moveTo(540, 1518).moveTo(862, 1518).moveTo(862, 1195) .release().perform(); } private void sleep(int i) { try { Thread.sleep(i); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
最后附上在执行脚本的过程中,使用screenrecord录制的解锁过程的视频:
时间: 2024-10-11 22:01:11