multi-automator
Version:
Multi terminal automation
74 lines (73 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* web 元素类
*/
class Element {
/**
* WEB Element Handle
*/
constructor(options) {
let { device, element } = options;
this.device = device;
this.element = element;
}
/**
* 获取元素位置
*
* @return {Promise{Object}} res
* @return {number} res.x
* @return {number} res.y
* @return {number} res.width
* @return {number} res.height
*/
async boundingBox() {
let res = await this.element.boundingBox();
return res;
}
/**
* 截屏
*
* @param {string} path 存储路径
* @return {Promise{Buffer}}
*/
async screenshot() {
return await this.element.screenshot();
}
/**
* 元素点击
*
* @return {Promise}
*/
async tap() {
return this.element.tap();
}
/**
* 回车
*
* @return {Promise}
*/
async enter() {
return this.element.press('Enter');
}
/**
* 对设备元素执行输入操作
*
* @param {string} text 要输入的文本
* @return {Promise}
*/
async input(text) {
return this.element.type(text);
}
/**
* 获取元素属性值
*
* @param {string} name 属性名称
* @return {string} 属性值
*/
async attribute(name) {
let res = await (await this.element.getProperty(name)).jsonValue();
return res;
}
}
exports.default = Element;