Skip to content

stepByStepReport error on saving screenshot with JS alert pop up #1560

Open
@evgeniy-mh

Description

@evgeniy-mh

What are you trying to achieve?

I am trying to use stepByStepReport plugin and record steps. This is my scenario:

Scenario("answerOnNextPrompt ", (I) => {
   I.amOnPage("https://a9t9.com/kantu/demo/storeeval");
   I.resizeWindow(1537,824);
   I.click({css:"#sometext"});
   I.fillField({css: '#sometext'},"123321");
   //after this click there is java script alert pop up
   I.click({xpath:"//button[@onclick='myFunction1()']"});
   I.seeInPopup("Hello\nHow are you?");
});

I know that I can't make screenshots when there is JS alert, because of that I added this configuration in codecept.conf.js

...
"plugins": {
    "allure": {},
    "stepByStepReport": {
      "enabled": true,
      "deleteSuccessful": true,
      "ignoreSteps":["seeInPopup*","wait*","grab*"],
      "screenshotsForAllureReport": true
    }
  },
...

What do you get instead?

Error caused by I.click({xpath:"//button[@onclick='myFunction1()']"}); command:

ENOENT: no such file or directory, open 'C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\rec ord_answerOnNextPrompt__1552385381\0004.png' --

Provide console output if related. Use --verbose mode for more details.

> codeceptjs run-multiple all:chrome -c ./codecept/codecept.conf.js --plugins allure "--steps" "--verbose"

[1.all:chrome] CodeceptJS v2.0.7
[1.all:chrome] Using test root "C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\codecept"
[1.all:chrome] Helpers: ClickFallback, HoverClick, Protractor
[1.all:chrome] Plugins: screenshotOnFail, allure, stepByStepReport

[1.all:chrome] new commands --
[1.all:chrome]     [1] Starting recording promises
[1.all:chrome]     Emitted | suite.before ([object Object])
[1.all:chrome]   answerOnNextPrompt
[1.all:chrome]     Emitted | test.before ([object Object])
[1.all:chrome]     Emitted | test.start ([object Object])
[1.all:chrome]     Emitted | step.before (I am on page "https://a9t9.com/kantu/demo/storeeval")
[1.all:chrome]     Emitted | step.after (I am on page "https://a9t9.com/kantu/demo/storeeval")
[1.all:chrome]     Emitted | step.before (I resize window 1537, 824)
[1.all:chrome]     Emitted | step.after (I resize window 1537, 824)
[1.all:chrome]     Emitted | step.before (I click {"css":"#sometext"})
[1.all:chrome]     Emitted | step.after (I click {"css":"#sometext"})
[1.all:chrome]     Emitted | step.before (I fill field {"css":"#sometext"}, "123321")
[1.all:chrome]     Emitted | step.after (I fill field {"css":"#sometext"}, "123321")
[1.all:chrome]     Emitted | step.before (I click {"xpath":"//button[@onclick='myFunction1()']"})
[1.all:chrome]     Emitted | step.after (I click {"xpath":"//button[@onclick='myFunction1()']"})
[1.all:chrome]     Emitted | step.before (I see in popup "Hello
How are you?")
[1.all:chrome]     Emitted | step.after (I see in popup "Hello
How are you?")
[1.all:chrome]     Emitted | step.start (I am on page "https://a9t9.com/kantu/demo/storeeval")
[1.all:chrome]     I am on page "https://a9t9.com/kantu/demo/storeeval"
[1.all:chrome]     » Visited https://a9t9.com/kantu/demo/storeeval
[1.all:chrome]     » Screenshot has been saved to C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\record_answerOnNextPrompt__1552386365\0000.png
[1.all:chrome]     » <stepByStepReport> Adding screenshot to Allure
[1.all:chrome]     Emitted | step.passed (I am on page "https://a9t9.com/kantu/demo/storeeval")
[1.all:chrome]     Emitted | step.finish (I am on page "https://a9t9.com/kantu/demo/storeeval")
[1.all:chrome]     Emitted | step.start (I resize window 1537, 824)
[1.all:chrome]     I resize window 1537, 824
[1.all:chrome]     » Screenshot has been saved to C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\record_answerOnNextPrompt__1552386365\0001.png
[1.all:chrome]     » <stepByStepReport> Adding screenshot to Allure
[1.all:chrome]     Emitted | step.passed (I resize window 1537, 824)
[1.all:chrome]     Emitted | step.finish (I resize window 1537, 824)
[1.all:chrome]     Emitted | step.start (I click {"css":"#sometext"})
[1.all:chrome]     I click {"css":"#sometext"}
[1.all:chrome]     » Screenshot has been saved to C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\record_answerOnNextPrompt__1552386365\0002.png
[1.all:chrome]     » <stepByStepReport> Adding screenshot to Allure
[1.all:chrome]     Emitted | step.passed (I click {"css":"#sometext"})
[1.all:chrome]     Emitted | step.finish (I click {"css":"#sometext"})
[1.all:chrome]     Emitted | step.start (I fill field {"css":"#sometext"}, "123321")
[1.all:chrome]     I fill field {"css":"#sometext"}, "123321"
[1.all:chrome]     » Screenshot has been saved to C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\record_answerOnNextPrompt__1552386365\0003.png
[1.all:chrome]     » <stepByStepReport> Adding screenshot to Allure
[1.all:chrome]     Emitted | step.passed (I fill field {"css":"#sometext"}, "123321")
[1.all:chrome]     Emitted | step.finish (I fill field {"css":"#sometext"}, "123321")
[1.all:chrome]     Emitted | step.start (I click {"xpath":"//button[@onclick='myFunction1()']"})
[1.all:chrome]     I click {"xpath":"//button[@onclick='myFunction1()']"}
[1.all:chrome]     » Screenshot has been saved to C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\record_answerOnNextPrompt__1552386365\0004.png
[1.all:chrome]     » <Can't save step screenshot: UnexpectedAlertOpenError: unexpected alert open: {Alert text : Hello
How are you?}
  (Session info: chrome=72.0.3626.119)
  (Driver info: chromedriver=2.43.600210 (68dcf5eebde37173d4027fa8635e332711d2874a),platform=Windows NT 10.0.17763 x86_64)> undefined
[1.all:chrome]     » <stepByStepReport> Adding screenshot to Allure
[1.all:chrome]     [1] Error | Error: ENOENT: no such file or directory, open 'C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\record_answerOnNextProm...
[1.all:chrome]     Emitted | step.failed (I click {"xpath":"//button[@onclick='myFunction1()']"})
[1.all:chrome]     Emitted | step.finish (I click {"xpath":"//button[@onclick='myFunction1()']"})
[1.all:chrome]     [1] Error | Error: ENOENT: no such file or directory, open 'C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\record_answerOnNextProm...
[1.all:chrome]     Emitted | step.failed (I see in popup "Hello
How are you?")
[1.all:chrome]     Emitted | step.finish (I see in popup "Hello
How are you?")
[1.all:chrome]     [1] Error | Error: ENOENT: no such file or directory, open 'C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\record_answerOnNextProm...
[1.all:chrome]     [1] Starting <teardown> session
[1.all:chrome]     Emitted | test.failed ([object Object])
[1.all:chrome]     Emitted | test.finish ([object Object])
[1.all:chrome]     [1] <teardown> Stopping recording promises
[1.all:chrome]  » <screenshotOnFail> Test failed, saving screenshot
[1.all:chrome]  » Screenshot has been saved to C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\answerOnNextPrompt_.failed.png
[1.all:chrome]   × FAILED in 4777ms
[1.all:chrome]
[1.all:chrome]     [2] Starting recording promises
[1.all:chrome]     Emitted | test.after ([object Object])
[1.all:chrome]     Emitted | suite.after ([object Object])

[1.all:chrome] -- FAILURES:

  1) new commands
       answerOnNextPrompt :
     ENOENT: no such file or directory, open 'C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\record_answerOnNextPrompt__1552386365\0004.png'

  Scenario Steps:

  - I.click({"xpath":"//button[@onclick='myFunction1()']"}) at Test.Scenario (tests\converted\new commands.js:8:6)
  - I.fillField({"css":"#sometext"}, "123321") at Test.Scenario (tests\converted\new commands.js:7:6)
  - I.click({"css":"#sometext"}) at Test.Scenario (tests\converted\new commands.js:6:6)
  - I.resizeWindow(1537, 824) at Test.Scenario (tests\converted\new commands.js:5:6)
  - I.amOnPage("https://a9t9.com/kantu/demo/storeeval") at Test.Scenario (tests\converted\new commands.js:4:6)

  Error: ENOENT: no such file or directory, open 'C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1\record_answerOnNextPrompt__1552386365\0004.png'
      at Object.openSync (fs.js:451:3)
      at Object.readFileSync (fs.js:351:35)
      at persistStep (node_modules\codeceptjs\lib\plugin\stepByStepReport.js:153:69)
      at process.internalTickCallback (internal/process/next_tick.js:77:7)


[1.all:chrome]   FAIL  | 0 passed, 1 failed   // 7s
[1.all:chrome]     Emitted | global.result ([object Object])
[1.all:chrome] (*) Step-by-step preview: file://C:\Users\evgenii.mikhailishin\Documents\ATF Web\CodeceptJS\Codecept-Allure POC\output\all__browser_chrome__1/records.html
[1.all:chrome]     Emitted | global.after ([object Object])
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] ccjs:allure:chrome: `codeceptjs run-multiple all:chrome -c ./codecept/codecept.conf.js --plugins allure "--steps" "--verbose"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] ccjs:allure:chrome script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\evgenii.mikhailishin\AppData\Roaming\npm-cache\_logs\2019-03-12T10_26_12_627Z-debug.log

Provide test source code if related

Feature("new commands");

Scenario("answerOnNextPrompt ", (I) => {
   I.amOnPage("https://a9t9.com/kantu/demo/storeeval");
   I.resizeWindow(1537,824);
   I.click({css:"#sometext"});
   I.fillField({css: '#sometext'},"123321");
   I.click({xpath:"//button[@onclick='myFunction1()']"});
   I.seeInPopup("Hello\nHow are you?");
});

Details

  • CodeceptJS version: 2.0.7
  • NodeJS Version: v11.3.0
  • Operating System: Windows 10
  • Protractor
  • Configuration file:
exports.config = {
  tests: '../tests/converted/*.js',
  output: '../output',
  helpers: {
    "ClickFallback": {
      "require": "./helpers/clickfallback_helper.js"
    },
    "HoverClick": {
      "require": "./helpers/hoverclick_helper.js"
    },
    Protractor: {
      url: '127.0.0.1:9000',
      driver: 'hosted',
      browser: 'chrome',
      rootElement: 'body',
      angular: false,
    }
  },
  "multiple": {
    "all": {
      "browsers": ["chrome", "firefox"]
    },
  },
  include: {
    I: '../steps_file.js'
  },
  bootstrap: null,
  "plugins": {
    "allure": {},
    "stepByStepReport": {
      "enabled": true,
      "deleteSuccessful": true,
      //disabled screenshot on "click" commands because of screenshot fail when JS alert pops up
      "ignoreSteps":[/*"click*",*/"seeInPopup*","wait*","grab*"],
      "screenshotsForAllureReport": true
    }
  },
  mocha: {},
  name: 'Codecept-Allure POC'
}

So as temporary solution I disabled recording "click" command in stepByStepReport plugin configuration, but it just disables ALL click commands.
What can I do with this problem?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions