Skip to content

Using restart=false with webdriverio backend leaves browser instances running #1069

Closed
@hubidu

Description

@hubidu

What are you trying to achieve?

I am setting restart to false in order to speed up overall test execution by not restarting browsers between tests.

What do you get instead?

Browsers are not restarted between tests but after the test run the used browser instance is not terminated. There seems to be even a new one with a blank page to be opened.

Details

node_modules\.bin\codeceptjs run --debug --verbose
CodeceptJS v1.2.0
Using test root "C:\Users\stefan.huber\projects\e2e-dashboard-client\examples\codeceptjs"

Failing test scenarios --
[1] Starting recording promises
Emitted | suite.before ([object Object])

[Session] Starting singleton browser session
The test will fail when an element on the page can not be found
Emitted | test.before ([object Object])
Emitted | test.start ([object Object])
Emitted | step.before (I am on page "http://www.check24.de")
Emitted | step.after (I am on page "http://www.check24.de")
Emitted | step.before (I click "#this-selector-does-not-exist")
Emitted | step.after (I click "#this-selector-does-not-exist")
Emitted | step.start (I am on page "http://www.check24.de")

[SmartWait (2000ms)] Locating #this-selector-does-not-exist in 2000
[1] Error | Error: Clickable element #this-selector-does-not-exist was not found by text|CSS|XPath
Emitted | step.failed (I click "#this-selector-does-not-exist")
Step finished in 2.069 sec
Emitted | step.finish (I click "#this-selector-does-not-exist")
[1] Error | Error: Clickable element #this-selector-does-not-exist was not found by text|CSS|XPath
[1] Starting session
Emitted | test.failed ([object Object])
Emitted | test.finish ([object Object])
[1] Stopping recording promises
Screenshot has been saved to C:\Users\stefan.huber\projects\e2e-dashboard-client\examples\codeceptjs__out\The_test_will_fail_when_an_element_on_the_page_can_not_be_found.failed.png
× FAILED in 3855ms

[2] Starting recording promises
Emitted | test.after ([object Object])

[Session] cleaning cookies and localStorage
Emitted | suite.after ([object Object])
Login Scenarios --
Emitted | suite.before ([object Object])
When I login with an invalid username and password then I will see an error message
Emitted | test.before ([object Object])
Emitted | test.start ([object Object])
Emitted | step.before (I am on page "http://www.check24.de")
Emitted | step.after (I am on page "http://www.check24.de")
Emitted | step.before (I click "#c24-meinkonto")
Emitted | step.after (I click "#c24-meinkonto")
Emitted | step.before (I click "Anmelden")
Emitted | step.after (I click "Anmelden")
Emitted | step.before (I fill field "#email", "Foo")
Emitted | step.after (I fill field "#email", "Foo")
Emitted | step.before (I fill field "#password", "Bar")
Emitted | step.after (I fill field "#password", "Bar")
Emitted | step.before (I click "#c24-kb-register-btn")
Emitted | step.after (I click "#c24-kb-register-btn")
Emitted | step.before (I see "Bitte geben Sie", ".error-desc")
Emitted | step.after (I see "Bitte geben Sie", ".error-desc")
Emitted | step.start (I am on page "http://www.check24.de")

[SmartWait (2000ms)] Locating #c24-meinkonto in 2000
Emitted | step.passed (I click "#c24-meinkonto")
Step finished in 0.074 sec
Emitted | step.finish (I click "#c24-meinkonto")
Emitted | step.start (I click "Anmelden")

  • I click "Anmelden"
    Emitted | step.passed (I click "Anmelden")
    Step finished in 0.336 sec
    Emitted | step.finish (I click "Anmelden")
    Emitted | step.start (I fill field "#email", "Foo")
  • I fill field "#email", "Foo"

[SmartWait (2000ms)] Locating #email in 2000
Emitted | step.passed (I fill field "#email", "Foo")
Step finished in 0.11 sec
Emitted | step.finish (I fill field "#email", "Foo")
Emitted | step.start (I fill field "#password", "Bar")

  • I fill field "#password", "Bar"

[SmartWait (2000ms)] Locating #password in 2000
Emitted | step.passed (I fill field "#password", "Bar")
Step finished in 0.074 sec
Emitted | step.finish (I fill field "#password", "Bar")
Emitted | step.start (I click "#c24-kb-register-btn")

  • I click "#c24-kb-register-btn"

[SmartWait (2000ms)] Locating #c24-kb-register-btn in 2000
Emitted | step.passed (I click "#c24-kb-register-btn")
Step finished in 0.079 sec
Emitted | step.finish (I click "#c24-kb-register-btn")
Emitted | step.start (I see "Bitte geben Sie", ".error-desc")

  • I see "Bitte geben Sie", ".error-desc"

[SmartWait (2000ms)] Locating .error-desc in 2000
Emitted | step.passed (I see "Bitte geben Sie", ".error-desc")
Step finished in 0.479 sec
Emitted | step.finish (I see "Bitte geben Sie", ".error-desc")
Emitted | test.passed ([object Object])
Emitted | test.finish ([object Object])
√ OK in 1959ms

Emitted | test.after ([object Object])

[Session] cleaning cookies and localStorage
Emitted | suite.after ([object Object])
Search for Handytarife --
Emitted | suite.before ([object Object])
When I search for "Handytarife" without specifying any details Then I will get a list of various tariffs
Emitted | test.before ([object Object])
Emitted | test.start ([object Object])
Emitted | step.before (I am on page "https://www.check24.de/handytarife")
Emitted | step.after (I am on page "https://www.check24.de/handytarife")
Emitted | step.before (I click "jetzt vergleichen", "button")
Emitted | step.after (I click "jetzt vergleichen", "button")
Emitted | step.before (I wait in url "/handytarife/vergleich")
Emitted | step.after (I wait in url "/handytarife/vergleich")
Emitted | step.before (I see "Handytarife im Vergleich", "h1")
Emitted | step.after (I see "Handytarife im Vergleich", "h1")
Emitted | step.before (I see element "//filter")
Emitted | step.after (I see element "//filter")
Emitted | step.before (I see element "product-item-anniversary")
Emitted | step.after (I see element "product-item-anniversary")
Emitted | step.start (I am on page "https://www.check24.de/handytarife")

[SmartWait (2000ms)] Locating button in 2000
Emitted | step.passed (I click "jetzt vergleichen", "button")
Step finished in 4.22 sec
Emitted | step.finish (I click "jetzt vergleichen", "button")
Emitted | step.start (I wait in url "/handytarife/vergleich")

  • I wait in url "/handytarife/vergleich"
    Emitted | step.passed (I wait in url "/handytarife/vergleich")
    Step finished in 0.779 sec
    Emitted | step.finish (I wait in url "/handytarife/vergleich")
    Emitted | step.start (I see "Handytarife im Vergleich", "h1")
  • I see "Handytarife im Vergleich", "h1"

[SmartWait (2000ms)] Locating h1 in 2000
Emitted | step.passed (I see "Handytarife im Vergleich", "h1")
Step finished in 0.632 sec
Emitted | step.finish (I see "Handytarife im Vergleich", "h1")
Emitted | step.start (I see element "//filter")

  • I see element "//filter"

[SmartWait (2000ms)] Locating //filter in 2000
Emitted | step.passed (I see element "//filter")
Step finished in 0.181 sec
Emitted | step.finish (I see element "//filter")
Emitted | step.start (I see element "product-item-anniversary")

  • I see element "product-item-anniversary"

[SmartWait (2000ms)] Locating product-item-anniversary in 2000
Emitted | step.passed (I see element "product-item-anniversary")
Step finished in 0.52 sec
Emitted | step.finish (I see element "product-item-anniversary")
Emitted | test.passed ([object Object])
Emitted | test.finish ([object Object])
√ OK in 7044ms

Emitted | test.after ([object Object])

[Session] cleaning cookies and localStorage
Emitted | suite.after ([object Object])

-- FAILURES:

  1. Failing test scenarios
    The test will fail when an element on the page can not be found:
    Clickable element #this-selector-does-not-exist was not found by text|CSS|XPath

Scenario Steps:

  • I.click("#this-selector-does-not-exist") at Test.Scenario (failing_test.js:6:7)
  • I.amOnPage("http://www.check24.de") at Test.Scenario (failing_test.js:5:7)

Error: Clickable element #this-selector-does-not-exist was not found by text|CSS|XPath
at new ElementNotFound (node_modules\codeceptjs\lib\helper\errors\ElementNotFound.js:14:11)
at assertElementExists (node_modules\codeceptjs\lib\helper\WebDriverIO.js:2096:11)
at WebDriverIO.click (node_modules\codeceptjs\lib\helper\WebDriverIO.js:553:7)
at
at process._tickDomainCallback (internal/process/next_tick.js:228:7)

FAIL | 2 passed, 1 failed // 16s
Emitted | global.result ([object Object])
Emitted | global.after ([object Object])

{
  "output": "./__out",
  "helpers": {
    "WebDriverIO": {
      "url": "http://localhost",
      "browser": "chrome",
      "restart": false,
      "keepBrowserState": false,
      "keepCookies": false,
      "smartWait": 2000,
      "waitForTimeout": 10000
    }
  },
  "multiple": {
    "parallel": {
      "chunks": 2,
      "browsers": ["chrome"]
    }
  },  
  "include": {
    "I": "./custom-steps.js",
    "loginPage": "./pages/login.page.js"
  },
  "mocha": {},
  "bootstrap": false,
  "teardown": null,
  "hooks": [],
  "tests": "./*_test.js",
  "timeout": 10000,
  "name": "codeceptjs"
}

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