codeceptjs / codeceptjs/CodeceptJS

Puppeteer: Error " Failed to read the 'localStorage' property" when restart is set to false

オープン
#1,480 コメント 0 件 リアクション 5 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
4.2k
フォーク
757
平均マージ
2日 9時間
マージ済み PR(30日)
16

説明

#### What are you trying to achieve?

The following test triggers an error message in the after each hook and incorrectly reports two failed tests when in fact there is only one test.

Feature('Bug')
/**
* Given I have the following config with the Puppeteer helper
*
* Puppeteer: {
* ...
* restart: false
* ...
* }
*
* When the test throws an error before interacting with the browser
* Then I get this error message
*
* 2) Bug
* "after each" hook: finalize codeceptjs for "Throw error before interacting with the browser":
* Evaluation failed: DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
* at __puppeteer_evaluation_script__:1:1
*
*/
Scenario('Throw error before interacting with the browser', (I) => {
throw new Error('Boom')
})

#### What do you get instead?

> CodeceptJS v2.0.4
> Using test root "C:\Users\stefan.huber\veve\codeceptjs-todomvc"
> Helpers: Puppeteer
> Plugins: screenshotOnFail
>
> Bug --
> [1] Starting recording promises
> Emitted | suite.before ([object Object])
> » [Session] Starting singleton browser session
> Throw error before interacting with the browser
> Emitted | test.before ([object Object])
> Emitted | test.start ([object Object])
> [1] Error | Error: Boom
> [1] Starting session
> Emitted | test.failed ([object Object])
> Emitted | test.finish ([object Object])
> [1] Stopping recording promises
> » Test failed, saving screenshot
> » Screenshot is saving to C:\Users\stefan.huber\veve\codeceptjs-todomvc\__out\Throw_error_before_interacting_with_the_browser.failed.png
> × FAILED in 1169ms
>
> [2] Starting recording promises
> Emitted | test.after ([object Object])
> » [Session] cleaning cookies and localStorage
> [2] Error | Error: Evaluation failed: DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
> at __puppeteer_evaluation_script__:1:1
> Emitted | test.failed ([object Object])
> × "after each" hook: finalize codeceptjs for "Throw error before interacting with the browser" in 8ms
> [2] Error | Error: Evaluation failed: DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
> at __puppeteer_evaluation_script__:1:1
> Error: Evaluation failed: DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
> at __puppeteer_evaluation_script__:1:1
> Emitted | suite.after ([object Object])
>
> -- FAILURES:
>
> 1) Bug
> Throw error before interacting with the browser:
> Boom
> rror: Boom
> at Test.Scenario (tests\error-in-after.test.js:21:9)
> at Context.test.fn (node_modules\codeceptjs\lib\scenario.js:76:14)
>
> 2) Bug
> "after each" hook: finalize codeceptjs for "Throw error before interacting with the browser":
> Evaluation failed: DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
> at __puppeteer_evaluation_script__:1:1
> rror: Evaluation failed: DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
> at __puppeteer_evaluation_script__:1:1
> at ExecutionContext.evaluateHandle (node_modules\puppeteer\lib\ExecutionContext.js:80:15)
> at
> at process._tickCallback (internal/process/next_tick.js:188:7)
> -- ASYNC --
> at ExecutionContext. (node_modules\puppeteer\lib\helper.js:108:27)
> at ExecutionContext.evaluate (node_modules\puppeteer\lib\ExecutionContext.js:48:31)
> at ExecutionContext. (node_modules\puppeteer\lib\helper.js:109:23)
> at DOMWorld.evaluate (node_modules\puppeteer\lib\DOMWorld.js:105:20)
> at
> at process._tickCallback (internal/process/next_tick.js:188:7)
> -- ASYNC --
> at Frame. (node_modules\puppeteer\lib\helper.js:108:27)
> at Page.evaluate (node_modules\puppeteer\lib\Page.js:815:43)
> at Page. (node_modules\puppeteer\lib\helper.js:109:23)
> at Puppeteer.executeScript (node_modules\codeceptjs\lib\helper\Puppeteer.js:1197:29)
> at Puppeteer._after (node_modules\codeceptjs\lib\helper\Puppeteer.js:231:16)
> at
> at process._tickCallback (internal/process/next_tick.js:188:7)
>
>
> FAIL | 0 passed, 2 failed // 2s
> Emitted | global.result ([object Object])
> Emitted | global.after ([object Object])
>

```bash
# paste output here
```

> Provide test source code if related

```js
// paste test
```

### Details

* CodeceptJS version: 2.0.4
* NodeJS Version: > 8
* Operating System: Windows
* Puppeteer

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。