Skip to content Skip to sidebar Skip to footer

Browser.savescreenshot() Hangs When Called

Hi I am writing automation tests for a Cordova application. I want to save screenshots of each page, here is my code. it('should take screenshot', function() { return browser

Solution 1:

It turns out savescreenshot(), is not compatible with cordova applications. However I did find a solution!

Using these commands we can take a screen shot directly from the emulator:

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

So how can we do this programmatically? well nodeJS has 'child_process' which can call commands to the terminal!

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


});

So using something like this ^, I can take a screenshot that is saved to the emulators sd card, and then pull this screenshot onto my directory!

Post a Comment for "Browser.savescreenshot() Hangs When Called"