无法使用browser.takescreenshot()

时间:2017-01-30 08:07:23

标签: jasmine protractor

这是我在afterEach块中的代码。

afterEach(function() {
        jasmine.getEnv().addReporter(new function () {
            this.specDone = function (result) {

                console.log("result is :"+result);
                if (result.failedExpectations.length > 0) {
                    browser.takeScreenshot().then(function(png) {

                        console.log("png is :"+png);
                        console.dir(png);
                        var stream = fs.createWriteStream(specName.description+".png");
                        var stream2 = fs.createWriteStream(specName.description+"2.png");
                        stream.write(new Buffer(png,'utf8', function (err)
                        {
                            if (err) throw err
                            console.log('File saved.')
                        }));
                        stream2.write(new Buffer(png,'base64'));
                        stream.end();
                        stream2.end();
                    });
                }
            };
        });

但是没有一个照片查看器能够打开文件。任何有关出错的见解都会受到高度赞赏。

系统是Windows 10和浏览器Firefox 46。*

browser.takeScreenshot()返回的png的console.log如下: png是:{"名称":"截图"," sessionId":" c18f3e08-9da0-4c71-9a10-391bab714e7a",&# 34;状态":0,"值":" iVBORw0KGgoAAAANSUhEUgAABpAAAAOsCAYAAABNo / WwAAAgAElEQVR4nOzd53fc1rnvcf15996c4xOnJ44TV9lyk6wuqzerd6tSEklR1XK3cxzHLbYTx0WdvZMSSYmdMwNgGjC / + wKDGZS9gQ1gY4AhN9b6LtvUULLPyRqtNR89z7No7senkPrpaXI3nin3LFI3nkP65vPu3XgBmZsvIn3rRaQcvWQpfftlpG6 / jPSdV5C + 8woyd19F5u5ryNxd6pp0bxky914nJrUut5RpXY7MveWQWldakttWQW5bBaltFTLtttpWI9O2BlL72kqZDr3C7I8ozvxkbfZnpgqzNywVSc2Ruuksdcv2tVsozt7S / 2qUuh2gO + Xueqam79FLteqlzbVBTbeh6JKaboeabkcx48z5Yx0opvXUTKejoqUuplSJUqabntTjUi9jfR4 / Zkom1e9IkwcYGnRNNafYG / Jo2Jk8BFUegqYMsyWbUu777IF72Wpq9n65B65VXz / iSKNUeY3yoFp2BFp2lKExR2p21NaYIy37kJD55yl / LedS9hElj ++ RFD / h58j5aTxAE7Ymg5X3aiqCphmb8azEkFbwWX42UKUCz + YYSlXSCnN6RXJFqQfFTC + KmT7PVKnfpcGapclDlVR5CEVp2HeqfN + RxjOv914fkd5rE5EyZsn8XlvKPUIp94jyPux8Hc / cf81xhiagKnpsr6dXyk2gVH4vLubGrWUnoOamLLG8x6m5aaaK2SkUs1NQc9Oe3 + / + 16wT59ZMSy + 8X7M1FkpqbrWT + eqmQ8v7 + Qgpqfi6ytEIqYGlohQyXSkVpAaRwCwV hfn30AqyJV7 / fVpR gcqQpma5FeXPTaqkZgFbxP9fF3OiYg5qMeuZpubqPF7 / + 8pBUwuelbSiZ5qad / x7lrR8wNh + zVpH + 78FSqqoTiqVNJRKJUeaptVl5v8G8cT3LDIDUvrnZ5D ++ RkLIKVvPov0TQY8KgNS + sYLSN204lH69hKkb7 / syAxIOiK5A5J0b5kvQNJbQcQjKiC1r7bgER9AusEfkCyIxBOP4gEkNRMvIFHxKEGApBHxqI4ASRmGpgQAJN94lEBAcrw + GCA5EYkFjwiA5AlAApAEIIUDJL54FBCQKHhEAyQDhZIKSGZICgJIJDziCUgljniUZEDywqFaohFvQNKyk + W / hscjP4BULTycGHhEQhQBSMkCpNAAlTg8Ygek + OEmKQlAqhdAihqPBCAJQIoWkPJMgMTW / AckWnGjiGhhApL9v0E88T0VQDLwyApIPvDo5vNI3XxBr4JHS5C + / + VI5HY0yd15BxoRG1l4NDEhkPKoCkh2OpHY9y RR + xpI7Wt8ABLb9BETILHAkRmPHIB0Wy8QHvmbPqICUsrIDkhtVEBSM9VIcOQo3WGJhEcqr + kjNziqCSBV4cjIDY1qB0j + 4UhlRSM7IAXCIxdAyjrzgqMwgGSNBY3ocERGJC84sgMSKwAFBKTKr + eGR2b04QFHJDwSgMQFkBIxeRQQkFzwSCukiNNHSQGkYmaA4XVsgERDI17xnjqqB0Aq5R5ymzIKO + lTjfTvY34frg0gmfGoAkjZampuslwwQDKmi9wKiyj1AEh8cUgAEh84EoAUNyDN97QaIQ4JkGr165EAiYRIccNNUoofd + qp6AApOB7VFyDFDSIiAUgCkOJ / PACJHY / SNxdj7uYLmHMA0ssOPKIj0qtI3yFPIRl4RAIkOh7pgGTGI7nNBkeVnHBkBaR1KMwGmz7yBKQgeGRGpFTQqSMzHrHBkTsetVrzmDwy4xEzIGVYAYkNjkLhERWQWOHIPmVEnjryC0iaJyC5wxEdkLymjjgDksIZ kAh4FASQ7JNFbHjEF5CqiMSCR7YiBSTC97giUVBAIoGRAKT5CUgscBQEkNyRKG5A8kYkb0CKGo / UCPEoqYCk5UaZpn7Yp4aiBiQ / P0cUgDSJYrYaHY74ABIPZEk6INUejxYGIPHBIzZAih9tklT8MFM31RiP4ogGSGZEQjEbO9wkpfhRpp6KBpDC4ZEAJJEAJL + AJJ54n0X29XUWSPICpFuLy72A9C0zHi0xTR854cgJSK9W8MiIhkeSCY0yJDBqWwGpbQUyrXpS2wrr5JEDkFYT19Z5AhLj7SMSIFWgyAFIFDhyBSTj78OsrGMApPQ97xxr68iAZIcjFkBSMx2VeAJSoLV1FTziAUgmHCJ8jQxINDQyFx6QtNgBiQMeUdAoGCCRV9ORvu4PjPzjEfGmUVg0cls / ZwEhBkDiMlXEF5BKeVpTlsIBkh18eMERPzziCUilQlIAKeUoPCBVI8PRQDl35LHmD5DcEWmoJkAUBxxFA0j2 + 3Huabkxaizr4 + IHJL + TRwYeGU0EqpSbtKS5ThtFs8aOBxwtLByqX0Dihz5slYpphgQQCUDyHw1NLICSAOCJE5AsJQBvklD8KFNP8Qek8HgkAEkkAEkAUn09i0h4lLrxTPn + ERmOMrcWI1XpBcu9I / 3m0Uv0yaO7rxJyX1lnhyNactuKCgyl21Yi3bYSmbbq + jrzxJHUsRpSB33qyLy6LtOxDpmON1Cc9Td1RIUjaqx4ZMOgOVMh8EhN + 4GjVoZcpo7S7Y7oeGQAEhmLgqyu4w9H / qeOaEhEhyMnHjnhyAuQWPGoeqhdlVngyOv2kR4bKIWAIy8wUh5AU0asucIRCxQFmTIKC0ccwYgVjvzkgUelclreRwEmjuho5IQjd0AKM0XEA4 + mmXEoakCyA0 / SJo9YAclrysiKOCQ8YsGgYVtsiMS0wk5mmzAiwkwMGBQ3IAW9W0SCIZ63jaIBJL / fO8mlUm7KkeYJQuywxAzphVlfOBI3Gi00QCoV UqF + vJaAxAZGwQAJquxZ / LgjAKlWOCQASQCSAKT6ASQ + cFQfgBQ3gogEIAlAStZTAaTMjWeRufEs0jeetQBS5tZiYiRASt9eUs5588g + deQFSFY80gHJfVWdFZAqUNS + ygJIOhyt9g1IUud6 / 4DkCUZBp4 / YAUlN3alEBqQqHqnpuyimGaeNagBIqk88YgEkKhx5AZJkLxwg + cEjA5DoWBQxIDHjkROQarq2jmHaqAJIDvihfY + fFXUJmDoKAkd + Acmxds4tKxjZixKQ3PFIAFIQQCJBTzQ3j / zgkT9AKhVTKBWrgERfTTdgwpzaApJbxnuzFgKQoqqUHZl3gORn2gj58Ur1Bkgk / PGK5ftogFSFCf39jTcg + UGK + QU98wOQHO / nlB9LFhyJCSQBSAsPkHjfRxKAJABJAFIyihs / RAKQSHgkACn + Z9Hcz0 / rWFRZV / ccUjeeq6yvc8LRi5SWUFfVOdfVea2pI9w5cgMkAhxZVtS1uUMRadrInNS5nhGQ / MARIxjNhVlTR7tv5PyaOyCxYBEZjCx4REAj98mjDlPhJ4 / 8Txk5sUgz5Q + O + uB228haFYLcp4yM1wy4NMjYED0Ok0dc4Sh7H6pyH6rywJqPFXThCjtlxGnyKGf7eyoEecFR0Oki / 2DkC5D8rqnzXD0X1 / 0ijveOWOHHIxbE0Qjr6cIhD8fyKT3CB40OQHJ8MEgCJDoIMU0DOdbW2eEoeJp8n1pSAKmUHalkX / EZKmUUqjLGJV545JUbIJF / HV6AxJp9VR0FgbLTXNI84cXlfbMwWS3vD5BoQOQGSPYbSvUPSAlYMecyNeR2h6hUTLsCUSk08jgLD0cCkAQgOcEoiejDE48EIAlAqp8EIAlAWlgJQBJPFM + i6rQR + d4RKyClby + BdPdVX4BkRiQLILW + 7gQkt + kjD0DywiM3QDLwKH5ACoJH5GkjUlEDEg2PaIBkxSN3QCr6nTwKAEgaMX8r69jwyO + kUXIBKdDkUdYb j3RAeuDMYxVdcgBpjPDPPgHJLwjVHSCx4JEApCgByXs9XVyAlAoMSAYeGYDkf6KoNoDkhkZ + AYn3VJAbHvEHJD54xAuQzBNG / qaM3H6deQ5IWU6AVJikvy + 6ABIL / hh4JAApYYBkwx1 + wBN1ApAEIM1 / QDLwKB5Aih9uklL8KFNPsQESG7DwRCQBSCIBSKyAJJ74n0WpG89Crzp1ZAek9K3FSN18obKurrqqzhp1Asmyrs45eZQxal0GqdUJSKRVdXLbCmQqrfScQDLSwWidIx2O1hHhSG8DOx4Rbx55gNHczSoWzbmsq2O + a8QGR9Z7R7T1deEAKczkUbGcNxx1OqCIiElSF5zr6Lyyr6vT8cgvIIWDI + sqOioYKeWY4UjHI00hF3TyyB8o + V9T5zVtZJ86iuLwOt + VdBQs8r2CzgcgkV6fs00uWX5s3F954 + 9ZMcjffSP / eMQbkPytoAsFRxzxyA8g8V0zx1CRIfOfQKdV9K4KR0Ysa + PKqz2pcFTFowryBMQhlu / nO3E04lkFiVxew3PtnJ8JpKgmisjr6SbKmTDcdbWcW7UGJLZ1dVpumlvu + OIDkArTjukiOxTRJo / C / h2ShUPOyU + / qblqvNbN8fi5KhV5rpDLJLC4QabeSgb0QM1afkwj5QNBzMWNPfVUkgGpVMi6Fse / k1rMehY / 3CSpvO904LE3fyeQ4kYPUXSAFDcEhQUk8STjWWTAkTn79FH61guYu0m6dWSPfPPIE5BaCTEB0kqky / kHpDcs0aaOpM71kDo2QO7cyDx5VHAAEgse2QHJx5TR3G0U50LiUepuADAKPnlEwyMzIBV9AZLznhF9GokNiej5u3fEZ + qIAZAMPFL8TR3R8MgbkaoIFByQWPGo / CGn6T5RMgGJ0y2jIPeMXKeGGF5vniSyAFIAOPI9SRQCj5gAqfaTRyUvKCqQ4gtF / ACpNtNFtLtFlqgfOJpLgx2QvKeK2ACJDD21BCTiHSEmWPLGIx2Q RlHKjiYOkKIAIzZAqlZ7CApWKRf8bhGvggHSFBWQ5tcNo / BAwxuQSoUUN0AyVs / xw6O48UM0nwDJjEgqobhxZSGU1BV2XngUFyIJQKpNfMFIAJIoOYCkqmrsQCQAqb6eRembz1MBKW0CJPu6OmcvUVbXvUoHpHs0QGKdQPIDSOaVdXRAkjrsk0f69JFEBSTn2rpg00dmQAq7qi4MHvkFJH5r66pY5ASkosfdIzseVRDJXKYLRcd6Op + AJPsHJG884gBISpDpI288ogOSFYLc0cgMQfMDkPhNHyUZkEx / Oj4QHkU0fZSfRMlW7QHJG4 + ogESEIwFI / ADJ + HCRBZAY19JR0Sh6QPKzvi5qQNI88Ig / ICUDj5z3jeoJkCasMQFSdHjEDkjTYF1fJwCJjEg8Vs1VVoL6fD19OtS6kk4AkihJgFQqA5ImACm26hmQxATS / CxaPBKAJIoXkOohAUjJehaR7h4Z0e4dkRApc + cl052j6r0j87SRpXtLHXAktVaxiH73qHrvKM0ISHYwMk8bVWrXJ41IZbo2ItO10QpG5hjuHBXcpo243jnyAUjEdXUkQKIjESsguU0cGVNHzpV0tDxuHEldKErd1LhOGsmk + nzUX4mGRXQ48rOmzj8cOQGJ8zo6tztHCuEDz6wfQLJ + EOl208htyoiMRyFW0vEEo8oaurB3i + i3jOhr6Wg / 5G + H1NwEtLw5P + vo7DgUBI1c / vR7wLV1JRoghUUjDquN6PeMgsOR5hULClHzXnVkBSTzh4tugJRmxyNpEEXZJWnYkR123H6MR2HvGPFEHy03ylRYQOK9qs7f9 / KEo0k + 5Sah5ies5Sah5qZ8FC0c + QYkj / We9YdDtQMkLe + 8L + QN + / urn9e6IRDUDNwQSdwaWojxAyES + rhFAgy / rxctDEBKanHjSvSx3S1iK + / + 7148ejwQgiQQgCUCqr4cKSJlbi4lYRPpa5s5LkO6 + bMEj0ro6Y2WdkQWP2mhg5Jw MgOS HYykjtW26aO1bOvqCHAkd26E3LmRCyBxW1fHY / qICkd8AMlr4sh848h678gbj2jr6eoRkFinjXgCkh84ogESHY8ogJQNGh2P4gCk8DeOquij2kEpCB7xAqTKtJAHHrkBUtCJo / z8AqSSHZAoaFQqzFjiCUh87htxAKRQcEQHJDME0aeP5gcguU0UscKRfrOIPpFUCj2lGWEB7hz5BaQg38v7JpFXbDeL6gOQnGASDJDqc7oomYBEQiIvQPJzwwhqxpIAJFESAMkNMQQcCUCql + IHnvkLSLXBIwFIotoAUtwIFBaPBCAl5yECUurm80iVAYl27yh1ZwnSd5Ygfad89 + iuGY9eI946ku4tQ4awss48eUSbOpLaViLT7jZpVMajjjXV2tcg076WsKbOHY7sk0eZrk3IdG2u3Daq3Dii4pHHqrrUrXK8J45c4MgTiYKtqbPEMGVkze2mkTsgmRGJvLKOBEes6 + rY7ho5ASlCOKqspws + eaQpfgCJvp6OGZAIKKQyRVtHx4JHlD8VX8lt / RyvtXSEiSMH + pCy406NJo / yLjBERCJzIW8YBcaiaFfQBZk80gFpxpKOP26ANBsakPiCESdA8glFFRDyWFPnvHVEgiNegDRUXjs3RICjISIcOYHoQaWidB9FKfxkESsglbIjllyBKW4ook0xsUxuMuOPffUcGXRqv5ouOBpRAalGcMQGIn6AiDxpREoAEttKOb + TQzTUYX0tCYNogGT / ef3hkQCk + RM / QGIBClZAihtSFmoCkAQgxQVItQMjAUii2gJS3Agk8Gh + PYsytxYTVtctRurWYqRvv1iZMMrcecm2ru4lpO ++ hPTdl203jpyTR7SpI7fJI + POkZHkuqZOxyMdkNZaMwES8b4RZfJIMk0e2QGJPnHkAUgVOAoDSP7wSE3fq + QPj6JCo6CARJk0YgAkx70juYce822jPj1GPPK + ccQKSGHwiBWQ6PeN3PHIewIpDCDZEcmZfbKIByAF xSPTB59UAKIgEBMgcVpVZ7lXRAEjx10jP3i0cADJjkdugBTo3lHN8ag2gGSZKKoXQJKGHGhEni4KBkhh1tHZ4cgLkPQJzwShkTmut42SercoPB45AckPHpEBiR + I8Mej + V14OKrcLXJZP + cXgVimhYJMEwlAEtUakETJTgCSAKQ4ACk + PBKAJIoWkOJGIAFI8 + 9ZlLm1GBZEurUYqVsvIHXrBeuautsvWTApc / flMh694gpIZjxyrK1rfZ0ISHY8CgNIUkf5 / pF56sht + qiMR1IFjnQ8krq3MMBRlIDkf + rIjEf + AMnHyjpXPGIDJNa7R3Y8sgKSjkOeeEQFJFY48g9IbHjkBUiDekEAqfy9QfCICyAp / CeQWADJ / KHowgUkA3t8AhINj3wDkgsezSNAKsUBSIXgRQpIAfEoGCC5fbjoDk3ucGTgEW0CiXUl3QNb0QISDY + 8EIkvBo2iyJBlRWhurJJmjhseOQEpfjgah5adSAAgRTnFQ3tPFYAUFSAZeMQDkILgUBAMCoZHApDmTwKQRAKQBCDFB0jx4pEAJFGEgJQABBKANP + eCiBVIOnWC8Q7RxY8uvMSBY78ABIbHLEAkoFHNECSO9ZD7vCAI2PyqMs8ebS5gkfJBCSXO0dEQOK4ss5j8ogVkFjgiDZ9ZM0AJA88IgKSTzQy5wFIPPBIY11bp7g1xBAZiQLfPrLFike0FXWxA1KOcV2dPT8AZMGgsIBkxh6vaSTW6SMOU0e + AYkXGgUBJJbJo4gBiQMY + QckbzgiAlIIPNIBKUW8e + QEJJYPF92xiQ5Iw7aqgFR5r5RZbxnVBpC84MgLk1ROiKTlRlHMjaGQda + Ye0hMzT + ypJVvFIWDIycg1QKHSBNP5CkoXoA0BTU3UY51hZ3bGjieTUErTEIrTOkJQHKJDx6FBSQeMBR9ApDmR / MfkFSNX3H / twhASlbxA099A5LAIwFI87n5AkjiSdbjA5CqeCQRJo / 020fGP5fX193z B0hSIEBabQKkNWyA1OkCS​​J3VtXWSCY / YAYkVj8ICkl88Shog + VtdxwWQZMr0kd + powoe8QIkdzzSfE4a8cQjjXHyqPr9fACJhEiJACQqIvnAo9xDK97UApCIGOQTkJjxiBGQaj515P + mETseCUAKevfIAkhMfyq + xoAkD5PfLy3gwwpJbIDkAB4bLJVM72ksUOT4munnV + X7XADJWDun5uhARIcjAh4VHqGU5wFHVkAKC0Oq8giq8igyQAqC

1 个答案:

答案 0 :(得分:0)

我不确定为什么takeShotshot()方法返回整个JSON对象而不仅仅是屏幕截图的base64值。在您的情况下,您可以检查takeScreenShot方法返回的对象是否包含名称为value的任何键。如果存在value,则使用它来获取屏幕截图的base64值。

browser.takeScreenshot().then(function(png) {
  var base64Value = png.hasOwnProperty("value") ? png.value : png;
  var stream = fs.createWriteStream(specName.description+".png");
  var stream2 = fs.createWriteStream(specName.description+"2.png");
  stream.write(new Buffer(png,'utf8', function (err)
    {
       if (err) throw err
            console.log('File saved.')
        }));
   stream2.write(new Buffer(base64Value,'base64'));
   stream.end();
   stream2.end();
})