2.1.5 • Published 3 years ago

bat-automator v2.1.5

Weekly downloads
-
License
-
Repository
-
Last release
3 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

3 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

4 years ago

1.0.62

4 years ago

1.0.61

4 years ago

1.0.60

4 years ago

1.0.66

4 years ago

1.0.65

4 years ago

1.0.63

4 years ago

1.0.132

4 years ago

1.0.131

4 years ago

1.0.133

4 years ago

1.0.130

4 years ago

1.0.139

4 years ago

1.0.136

4 years ago

1.0.135

4 years ago

1.0.138

4 years ago

1.0.73

4 years ago

1.0.72

4 years ago

1.0.71

4 years ago

1.0.70

4 years ago

1.0.77

4 years ago

1.0.76

4 years ago

1.0.75

4 years ago

1.0.74

4 years ago

1.0.79

4 years ago

1.0.78

4 years ago

1.0.38

4 years ago

1.1.9

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.6

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.12

4 years ago

1.1.11

4 years ago

1.1.10

4 years ago

1.1.16

4 years ago

1.1.15

4 years ago

1.1.13

4 years ago

1.1.18

4 years ago

1.0.55

4 years ago

1.1.20

4 years ago

1.0.101

4 years ago

1.0.100

4 years ago

1.0.107

4 years ago

1.0.106

4 years ago

1.0.109

4 years ago

1.0.108

4 years ago

1.0.103

4 years ago

1.0.102

4 years ago

1.0.105

4 years ago

1.0.33

4 years ago

1.0.32

4 years ago

1.0.31

4 years ago

1.0.30

4 years ago

1.0.37

4 years ago

1.0.36

4 years ago

1.0.35

4 years ago

1.0.121

4 years ago

1.0.120

4 years ago

1.0.122

4 years ago

1.0.129

4 years ago

1.0.128

4 years ago

1.0.125

4 years ago

1.0.127

4 years ago

1.0.126

4 years ago

1.0.80

4 years ago

1.0.84

4 years ago

1.0.83

4 years ago

1.0.82

4 years ago

1.0.81

4 years ago

1.0.88

4 years ago

1.0.87

4 years ago

1.0.86

4 years ago

1.0.85

4 years ago

1.0.89

4 years ago

1.0.110

4 years ago

1.0.111

4 years ago

1.0.114

4 years ago

1.0.116

4 years ago

1.0.115

4 years ago

1.0.91

4 years ago

1.0.90

4 years ago

1.0.95

4 years ago

1.0.93

4 years ago

1.0.92

4 years ago

1.0.99

4 years ago

1.0.98

4 years ago

1.0.96

4 years ago

1.0.28

4 years ago

1.0.27

4 years ago

1.0.26

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.20

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago