2.1.5 • Published 2 years ago

bat-automator v2.1.5

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

bat-automator 设备操控库

  • 支持 Android、iOS 设备

原理

  • 使用 scrcpy 来做 android 设备录屏以绕开 adb screenrecord 在部分机型不可用问题:brew install scrcpy
  • 用 adb 来操控 android 设备:brew install android-platform-tools
  • 用 tidevice 来操控 iOS 设备:pip3.9 install -U tidevice
    • 用 tidevice 的 relay 做端口映射,有一个 60s 左右的启动耗时,所以换成用 iProxy 做端口映射
  • 用 ios-minicap 做 iOS 录屏(自动安装)
    • 废弃
  • 用 ffmpeg 做视频分帧:ffmpeg 的安装
  • 统一 node18

支持能力

能力列表

  • 启停 APP
  • 模拟划屏
  • 元素点击、输入
  • 设备录屏
  • 设备截屏

能力示例

示例均针对 Android 设备

启停 APP
const automator = require('bat-automator');

// 设备号
let deviceId = 'abc';

// APP 包名
let baiduPackageName = 'com.baidu.searchbox';
let baiduMainActivity = 'com.baidu.searchbox.MainActivity';

const main = async () => {
    // 获取设备句柄
    let device = await automator.launch(deviceId);

    // 停止 APP
    await device.closeApp(baiduPackageName);

    // 各类操作
    // ...

    // 启动 APP
    await device.launchApp(baiduPackageName, baiduMainActivity);
};
模拟划屏
const automator = require('bat-automator');

// 设备号
let deviceId = 'abc';

const main = async () => {
    // 获取设备句柄
    let device = await automator.launch(deviceId);

    // 模拟手指从 (0, 0) 划到 (1, 1)
    await device。swipe(0, 0, 1, 1);
};
元素点击
const automator = require('bat-automator');

// 设备号
let deviceId = 'abc';

const main = async () => {
    // 获取设备句柄
    let device = await automator.launch(deviceId);

    // 获取元素
    let element = await device.$x('//node[@text="我的"]');

    // 元素点击
    await element.tap();
};
元素输入
const automator = require('bat-automator');

// 设备号
let deviceId = 'abc';

const main = async () => {
    // 获取设备句柄
    let device = await automator.launch(deviceId);

    // 获取元素
    let element = await device.$x('//node[@text="搜索"]');

    // 元素输入
    await element.input("龙霸天好吃吗");
};
设备录屏
const automator = require('bat-automator');

// 设备号
let deviceId = 'abc';

// 录屏存储路径
let videoPath = '/Users/data/video.mp4';

const main = async () => {
    // 获取设备句柄
    let device = await automator.launch(deviceId);

    // 启动录屏
    let video = await device.record(videoPath);

    // 各类操作
    // ...

    // 结束录屏
    await video.kill();
};
2.1.2

3 years ago

2.1.1

3 years ago

2.1.4

3 years ago

2.1.3

3 years ago

2.1.5

2 years ago

2.1.0

3 years ago

1.1.38

3 years ago

1.1.37

3 years ago

1.1.36

3 years ago

2.0.0

3 years ago

1.1.35

3 years ago

1.1.41

3 years ago

1.1.40

3 years ago

1.1.45

3 years ago

1.1.44

3 years ago

1.1.43

3 years ago

1.1.42

3 years ago

1.1.49

3 years ago

1.1.48

3 years ago

1.1.47

3 years ago

1.1.46

3 years ago

1.1.52

3 years ago

1.1.51

3 years ago

1.1.50

3 years ago

1.1.30

3 years ago

1.1.33

3 years ago

1.1.31

3 years ago

1.1.23

3 years ago

1.1.22

3 years ago

1.1.27

3 years ago

1.1.26

3 years ago

1.1.25

3 years ago

1.1.24

3 years ago

1.0.140

3 years ago

1.0.62

3 years ago

1.0.61

3 years ago

1.0.60

3 years ago

1.0.66

3 years ago

1.0.65

3 years ago

1.0.63

3 years ago

1.0.132

3 years ago

1.0.131

3 years ago

1.0.133

3 years ago

1.0.130

3 years ago

1.0.139

3 years ago

1.0.136

3 years ago

1.0.135

3 years ago

1.0.138

3 years ago

1.0.73

3 years ago

1.0.72

3 years ago

1.0.71

3 years ago

1.0.70

3 years ago

1.0.77

3 years ago

1.0.76

3 years ago

1.0.75

3 years ago

1.0.74

3 years ago

1.0.79

3 years ago

1.0.78

3 years ago

1.0.38

3 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.12

3 years ago

1.1.11

3 years ago

1.1.10

3 years ago

1.1.16

3 years ago

1.1.15

3 years ago

1.1.13

3 years ago

1.1.18

3 years ago

1.0.55

3 years ago

1.1.20

3 years ago

1.0.101

3 years ago

1.0.100

3 years ago

1.0.107

3 years ago

1.0.106

3 years ago

1.0.109

3 years ago

1.0.108

3 years ago

1.0.103

3 years ago

1.0.102

3 years ago

1.0.105

3 years ago

1.0.33

3 years ago

1.0.32

3 years ago

1.0.31

3 years ago

1.0.30

3 years ago

1.0.37

3 years ago

1.0.36

3 years ago

1.0.35

3 years ago

1.0.121

3 years ago

1.0.120

3 years ago

1.0.122

3 years ago

1.0.129

3 years ago

1.0.128

3 years ago

1.0.125

3 years ago

1.0.127

3 years ago

1.0.126

3 years ago

1.0.80

3 years ago

1.0.84

3 years ago

1.0.83

3 years ago

1.0.82

3 years ago

1.0.81

3 years ago

1.0.88

3 years ago

1.0.87

3 years ago

1.0.86

3 years ago

1.0.85

3 years ago

1.0.89

3 years ago

1.0.110

3 years ago

1.0.111

3 years ago

1.0.114

3 years ago

1.0.116

3 years ago

1.0.115

3 years ago

1.0.91

3 years ago

1.0.90

3 years ago

1.0.95

3 years ago

1.0.93

3 years ago

1.0.92

3 years ago

1.0.99

3 years ago

1.0.98

3 years ago

1.0.96

3 years ago

1.0.28

3 years ago

1.0.27

3 years ago

1.0.26

3 years ago

1.0.23

3 years ago

1.0.22

3 years ago

1.0.20

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago