您的位置:首页 > 移动开发

使用appium进行图案解锁

2015-01-06 16:59 239 查看
对于应用中图案解锁的功能,使用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录制的解锁过程的视频:

unlok.mp4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: