2.1.5 • Published 1 year ago

bat-automator v2.1.5

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

1 year ago

2.1.1

1 year ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.5

1 year ago

2.1.0

1 year ago

1.1.38

2 years ago

1.1.37

2 years ago

1.1.36

2 years ago

2.0.0

1 year ago

1.1.35

2 years ago

1.1.41

2 years ago

1.1.40

2 years ago

1.1.45

2 years ago

1.1.44

2 years ago

1.1.43

2 years ago

1.1.42

2 years ago

1.1.49

1 year ago

1.1.48

2 years ago

1.1.47

2 years ago

1.1.46

2 years ago

1.1.52

1 year ago

1.1.51

1 year ago

1.1.50

1 year ago

1.1.30

2 years ago

1.1.33

2 years ago

1.1.31

2 years ago

1.1.23

2 years ago

1.1.22

2 years ago

1.1.27

2 years ago

1.1.26

2 years ago

1.1.25

2 years ago

1.1.24

2 years ago

1.0.140

2 years ago

1.0.62

2 years ago

1.0.61

2 years ago

1.0.60

2 years ago

1.0.66

2 years ago

1.0.65

2 years ago

1.0.63

2 years ago

1.0.132

2 years ago

1.0.131

2 years ago

1.0.133

2 years ago

1.0.130

2 years ago

1.0.139

2 years ago

1.0.136

2 years ago

1.0.135

2 years ago

1.0.138

2 years ago

1.0.73

2 years ago

1.0.72

2 years ago

1.0.71

2 years ago

1.0.70

2 years ago

1.0.77

2 years ago

1.0.76

2 years ago

1.0.75

2 years ago

1.0.74

2 years ago

1.0.79

2 years ago

1.0.78

2 years ago

1.0.38

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.12

2 years ago

1.1.11

2 years ago

1.1.10

2 years ago

1.1.16

2 years ago

1.1.15

2 years ago

1.1.13

2 years ago

1.1.18

2 years ago

1.0.55

2 years ago

1.1.20

2 years ago

1.0.101

2 years ago

1.0.100

2 years ago

1.0.107

2 years ago

1.0.106

2 years ago

1.0.109

2 years ago

1.0.108

2 years ago

1.0.103

2 years ago

1.0.102

2 years ago

1.0.105

2 years ago

1.0.33

2 years ago

1.0.32

2 years ago

1.0.31

2 years ago

1.0.30

2 years ago

1.0.37

2 years ago

1.0.36

2 years ago

1.0.35

2 years ago

1.0.121

2 years ago

1.0.120

2 years ago

1.0.122

2 years ago

1.0.129

2 years ago

1.0.128

2 years ago

1.0.125

2 years ago

1.0.127

2 years ago

1.0.126

2 years ago

1.0.80

2 years ago

1.0.84

2 years ago

1.0.83

2 years ago

1.0.82

2 years ago

1.0.81

2 years ago

1.0.88

2 years ago

1.0.87

2 years ago

1.0.86

2 years ago

1.0.85

2 years ago

1.0.89

2 years ago

1.0.110

2 years ago

1.0.111

2 years ago

1.0.114

2 years ago

1.0.116

2 years ago

1.0.115

2 years ago

1.0.91

2 years ago

1.0.90

2 years ago

1.0.95

2 years ago

1.0.93

2 years ago

1.0.92

2 years ago

1.0.99

2 years ago

1.0.98

2 years ago

1.0.96

2 years ago

1.0.28

2 years ago

1.0.27

2 years ago

1.0.26

2 years ago

1.0.23

2 years ago

1.0.22

2 years ago

1.0.20

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago