[老欧的自学]MonkeyRunner API

参数中,包含默认值的参数,为可选参数

 

MonkeyRunner.alert(string message, string title, string okTitle)

在脚本运行过程中,在PC端弹出敬告对话框.脚本暂停运行,直至关闭对话框.

参数:

        message: 弹出对话框内容

        title: 对话框的标题栏显示内容,默认值为"Alert"

        okTitle : 对话框的按钮,默认值为"OK"

返回值:

        不返回任何值.

例子:

        MonkeyRunner.alert('Message','tip','sure')

        

实际应用:

可以使用在脚本运行之前,判断手机设备连接等.

 


 

MonkeyRunner.Chice(string message, iterable choices, string title)

在脚本运行过程中,在PC端弹出对话框,对话框中包含选择列表.脚本暂停运行,直至关闭对话框.

参数:

message: 弹出对话框显示内容

choices: 选择列表数组

title: 对话框标题内容.默认为"Input"

返回值:

如果用户选择并点击确认按钮,返回0-数组最大值.

如果用户关闭了对话框,返回值为-1.

例子:

MonkeyRunner.choice('message',['choice1','choice2','choice3'],'title')

 

实际应用:

可以在脚本运行之前,选择需要运行的脚本.

 


MonkeyRunner.help(string format)

打印出MonkeyRunner的帮助文档.

参数: 

format: 可以输入"text"或者"html"进行输出

返回值: 

没有

不知道为什么这个参数我是从来没有成功过


MonkeyRunner.input(string message, string initialValue, string title, string okTitle, string cancelTitle)

在脚本运行中,在PC端弹出可输入对话框.脚本暂停运行,直至对话框关闭

参数:

message: 对话框显示信息

initiaValue: 文本框显示文本.默认为空

title: 对话框标题内容.默认为"Input"

okTitle: 确认按钮的文本显示.默认为"OK"

cancelTitle: 取消按钮的文本显示.默认为"Cancel"

返回值:

如果用户点击确认按钮,将文本框的值返回

如果用户点击取消按钮,将返回一个空的String

例子:

MonkeyRunner.input('message','please input','title','ok','cancel')

实际应用:

用例执行之前,输入测试存放文件夹名称.

在脚本运行时,可以灵活输入文本,进行测试,不过感觉意义不大

 


 

MonkeyRunner.sleep(float seconds)

脚本暂停运行指定的时间,单位以秒计算.

参数: 

seconds: 暂停的时间.

例子:

MonkeyRunner.sleep(1.5)

实际应用:

太多了


 

MonkeyRunner.waitForConnection(float timeout, string deviceId)

尝试对android设备或模拟器通过monkeyrunner进行连接

参数:

 timeout: 等待超时时间,默认值为永久等待.

deviceId: 通过设备ID去设别手机或模拟器.如果只有一台手机的时候,不需要输入.

deviceId可以通过adb devices来获得

返回值:

连接成功后,建立一个MonkeyDevice.用来控制手机或模拟器.

例子:

device = MonkeyRunner.waitForConnection(1.5,'181fa9b2')

实际应用:

每个脚本必备,没啥可说的

deviceId可以用于多设备选择.用adb devices


附MonkeyRunner源码

// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   MonkeyRunner.java
package com.android.monkeyrunner;
import com.android.chimpchat.ChimpChat;
import com.android.chimpchat.core.ChimpImageBase;
import com.google.common.base.Functions;
import com.google.common.base.Preconditions;
import com.google.common.collect.Collections2;
import java.util.Collection;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import org.python.core.*;
// Referenced classes of package com.android.monkeyrunner:
//          MonkeyDevice, MonkeyImage, JythonUtils, MonkeyRunnerHelp
public class MonkeyRunner extends PyObject
    implements ClassDictInit
{
    private static final Logger LOG = Logger.getLogger(com/android/monkeyrunner/MonkeyRunner.getCanonicalName());
    private static ChimpChat chimpchat;
    public MonkeyRunner()
    {
    }
    public static void classDictInit(PyObject dict)
    {
        JythonUtils.convertDocAnnotationsForClass(com/android/monkeyrunner/MonkeyRunner, dict);
    }
    static void setChimpChat(ChimpChat chimp)
    {
        chimpchat = chimp;
    }
    public static MonkeyDevice waitForConnection(PyObject args[], String kws[])
    {
        ArgParser ap = JythonUtils.createArgParser(args, kws);
        Preconditions.checkNotNull(ap);
        long timeoutMs;
        try
        {
            double timeoutInSecs = JythonUtils.getFloat(ap, 0);
            timeoutMs = (long)(timeoutInSecs * 1000D);
        }
        catch (PyException e)
        {
            timeoutMs = 0x7fffffffffffffffL;
        }
        com.android.chimpchat.core.IChimpDevice device = chimpchat.waitForConnection(timeoutMs, ap.getString(1, ".*"));
        MonkeyDevice chimpDevice = new MonkeyDevice(device);
        return chimpDevice;
    }
    public static void sleep(PyObject args[], String kws[])
    {
        ArgParser ap = JythonUtils.createArgParser(args, kws);
        Preconditions.checkNotNull(ap);
        double seconds = JythonUtils.getFloat(ap, 0);
        long ms = (long)(seconds * 1000D);
        try
        {
            Thread.sleep(ms);
        }
        catch (InterruptedException e)
        {
            LOG.log(Level.SEVERE, "Error sleeping", e);
        }
    }
    public static String help(PyObject args[], String kws[])
    {
        ArgParser ap = JythonUtils.createArgParser(args, kws);
        Preconditions.checkNotNull(ap);
        String format = ap.getString(0, "text");
        return MonkeyRunnerHelp.helpString(format);
    }
    public static void alert(PyObject args[], String kws[])
    {
        ArgParser ap = JythonUtils.createArgParser(args, kws);
        Preconditions.checkNotNull(ap);
        String message = ap.getString(0);
        String title = ap.getString(1, "Alert");
        String buttonTitle = ap.getString(2, "OK");
        alert(message, title, buttonTitle);
    }
    public static String input(PyObject args[], String kws[])
    {
        ArgParser ap = JythonUtils.createArgParser(args, kws);
        Preconditions.checkNotNull(ap);
        String message = ap.getString(0);
        String initialValue = ap.getString(1, "");
        String title = ap.getString(2, "Input");
        return input(message, initialValue, title);
    }
    public static int choice(PyObject args[], String kws[])
    {
        ArgParser ap = JythonUtils.createArgParser(args, kws);
        Preconditions.checkNotNull(ap);
        String message = ap.getString(0);
        Collection choices = Collections2.transform(JythonUtils.getList(ap, 1), Functions.toStringFunction());
        String title = ap.getString(2, "Input");
        return choice(message, title, choices);
    }
    public static MonkeyImage loadImageFromFile(PyObject args[], String kws[])
    {
        ArgParser ap = JythonUtils.createArgParser(args, kws);
        Preconditions.checkNotNull(ap);
        String path = ap.getString(0);
        com.android.chimpchat.core.IChimpImage image = ChimpImageBase.loadImageFromFile(path);
        return new MonkeyImage(image);
    }
    public static void alert(String message, String title, String okTitle)
    {
        Object options[] = {
            okTitle
        };
        JOptionPane.showOptionDialog(null, message, title, -1, 1, null, options, options[0]);
    }
    public static int choice(String message, String title, Collection choices)
    {
        Object possibleValues[] = choices.toArray();
        Object selectedValue = JOptionPane.showInputDialog(null, message, title, 3, null, possibleValues, possibleValues[0]);
        for (int x = 0; x < possibleValues.length; x++)
            if (possibleValues[x].equals(selectedValue))
                return x;
        return -1;
    }
    public static String input(String message, String initialValue, String title)
    {
        return (String)JOptionPane.showInputDialog(null, message, title, 3, null, null, initialValue);
    }
}


转载于:https://www.cnblogs.com/oenai/p/3800028.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值