recurf
recurf

Reputation: 235

automatically input to terminal, from nodeJS?

This may sound rather crazy, but I cannot find a solution to automate taking screenshots on a cordova application.

I know I can take and save a screenshot of the emulator using

adb shell /system/bin/screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png screenshot.png

in the terminal, my crazy question is. Can I trigger these commands from a nodeJS automation script? or is this too far fetched and a terrible idea?

Upvotes: 1

Views: 649

Answers (1)

parthi82
parthi82

Reputation: 483

Simplest way to execute terminal commands from node.js would be to use child_process.exec

const exec = require('child_process').exec;
exec('adb shell /system/bin/screencap -p /sdcard/screenshot.png', (error, stdout, stderr) => {
   if (error) {
     console.error(`exec error: ${error}`);
     return;
   }
   console.log(`stdout: ${stdout}`);
   console.log(`stderr: ${stderr}`);
});

The built-in child_process module in node.js provides many functions such child_process.spawn, child_process.exec, child_process.execFile which can be used to execute terminal commands or other script files (.sh, .bat).

Upvotes: 2

Related Questions