登录、点击、滑动到屏幕底部

本实例通过脚本实现登录,点击,滑动到屏幕底部,点击,再次滑动到底部的操作。

编写言语:Ringo JS

源码

var {request} = require('ringo/httpclient');
var base64 = require('ringo/base64');
var subproc = require('ringo/subprocess'); 

var userpass = base64.encode('sigma:jiehua');
var prefix = 'http://127.0.0.1:8090/TotalControl/v1/'
var token = null; 

function sleep(sec) {
    subproc.command('sleep '+sec);
}

function restError(ret, url) {
    this.status = ret.status;
    this.message = "Unknown error";
    this.code = 0;
    this.url = url;
    if (ret.status == '403') {
        // Just handle the first error
        var value = JSON.parse(ret.content);
        this.code = value.errors[0].code;
        this.message = value.errors[0].message;
    }  
}

function sendRequest(url, opt) {
    if (!opt) opt={};
    var fullurl = prefix + url + "?token=" + token;
    if (opt.params) {
        fullurl += '&' + opt.params;
    }
    var method = opt.method || 'GET';
    var robj = {method:method, url: fullurl};
    if (opt.headers) {
        robj.headers = opt.headers;
    }
    print(fullurl);
    var exchange = request(robj);
    if (exchange.status == 200) {
        return({status: true, value: JSON.parse(exchange.content)});
    }
    throw new restError(exchange, fullurl);
} 

function fastSwipeParam() {
    var ftob = '[';
    for (var i = 0.8; i >= 0.05; i -= 0.15) {
        ftob += '[0.5000,' + i.toFixed(4) + ',1],';
    }
    ftob = ftob.slice(0,ftob.length-1) + ']';
    return(ftob);
}      

var exchange = request({
    method: 'GET',
    url: prefix+'login',
    headers: {
        'Authorization': userpass
    }
}); 

if(exchange.status == 200) {
    token=JSON.parse(exchange.content).value.token;
} 

try {
    var ret = sendRequest('devices/main');
    var device = ret.value.id;
    var req = 'devices/' + device + '/screen/inputs';
    ret = sendRequest(req, {method: 'POST', params: 'x=0.2625&y=0.4583'});
    sleep(3);
    var ftob = fastSwipeParam();
    ret = sendRequest(req, {method: 'POST', params: 'coord='+ftob});
    sleep(1);
    ret = sendRequest(req, {method: 'POST', params: 'x=0.3848&y=0.8345'});
    sleep(2);
    ret = sendRequest(req, {method: 'POST', params: 'coord='+ftob});
} catch (e) {
    print('Error found! Status = ' + e.status + ', code = ' + e.code + 
        '\nURL = ' + e.url + '\nmessage = ' + e.message);
    quit(1);
}
quit(0);