Skip to content

Can not open more than one additional tab #1874

@jplegoff

Description

@jplegoff

What are you trying to achieve?

When I use I.openNewTab() for the second time, it does not open a new tab.

What do you get instead?

As you can see when running code below the 3rd assertion fails because I.grabNumberOfOpenTabs() returns 2 instead of 3 as expected

    I.amOnPage('https://www.google.com');
    I.waitForElement('div#searchform');
    let tabs = await I.grabNumberOfOpenTabs();
    var assert = require('assert');
    assert.equal(tabs, 1);
    I.openNewTab();
    I.amOnPage('https://www.yahoo.com');
    tabs = await I.grabNumberOfOpenTabs();
    assert.equal(tabs, 2);
    I.openNewTab();
    I.amOnPage('https://www.codecept.io');
    tabs = await I.grabNumberOfOpenTabs();
    assert.equal(tabs, 3);

Details

  • CodeceptJS version: v2.3.0

Console output

Helpers: WebDriver
Plugins: screenshotOnFail

Dashboard test.js --
    [1] Starting recording promises
    Emitted | suite.before ([object Object])
  Open more than one tab
    Emitted | test.before ([object Object])
    Emitted | test.start ([object Object])
    Emitted | step.before (I am on page "https://www.google.com")
    Emitted | step.after (I am on page "https://www.google.com")
    Emitted | step.before (I wait for element "div#searchform")
    Emitted | step.after (I wait for element "div#searchform")
    Emitted | step.before (I grab number of open tabs )
    Emitted | step.after (I grab number of open tabs )
    Emitted | step.start (I am on page "https://www.google.com")
    I am on page "https://www.google.com"
    Emitted | step.passed (I am on page "https://www.google.com")
    Emitted | step.finish (I am on page "https://www.google.com")
    Emitted | step.start (I wait for element "div#searchform")
    I wait for element "div#searchform"
    Emitted | step.passed (I wait for element "div#searchform")
    Emitted | step.finish (I wait for element "div#searchform")
    Emitted | step.start (I grab number of open tabs )
    I grab number of open tabs 
    › [Tabs] Total 1
    Emitted | step.passed (I grab number of open tabs )
    Emitted | step.finish (I grab number of open tabs )
    Emitted | step.before (I open new tab )
    Emitted | step.after (I open new tab )
    Emitted | step.before (I am on page "https://www.yahoo.com")
    Emitted | step.after (I am on page "https://www.yahoo.com")
    Emitted | step.before (I grab number of open tabs )
    Emitted | step.after (I grab number of open tabs )
    Emitted | step.start (I open new tab )
    I open new tab 
    Emitted | step.passed (I open new tab )
    Emitted | step.finish (I open new tab )
    Emitted | step.start (I am on page "https://www.yahoo.com")
    I am on page "https://www.yahoo.com"
    Emitted | step.passed (I am on page "https://www.yahoo.com")
    Emitted | step.finish (I am on page "https://www.yahoo.com")
    Emitted | step.start (I grab number of open tabs )
    I grab number of open tabs 
    › [Tabs] Total 2
    Emitted | step.passed (I grab number of open tabs )
    Emitted | step.finish (I grab number of open tabs )
    Emitted | step.before (I open new tab )
    Emitted | step.after (I open new tab )
    Emitted | step.before (I am on page "https://www.codecept.io")
    Emitted | step.after (I am on page "https://www.codecept.io")
    Emitted | step.before (I grab number of open tabs )
    Emitted | step.after (I grab number of open tabs )
    Emitted | step.start (I open new tab )
    I open new tab 
    Emitted | step.passed (I open new tab )
    Emitted | step.finish (I open new tab )
    Emitted | step.start (I am on page "https://www.codecept.io")
    I am on page "https://www.codecept.io"
    Emitted | step.passed (I am on page "https://www.codecept.io")
    Emitted | step.finish (I am on page "https://www.codecept.io")
    Emitted | step.start (I grab number of open tabs )
    I grab number of open tabs 
    › [Tabs] Total 2
    Emitted | step.passed (I grab number of open tabs )
    Emitted | step.finish (I grab number of open tabs )
    [1] Error | AssertionError [ERR_ASSERTION]: 2 == 3
    [1] Starting <teardown> session
    Emitted | test.failed ([object Object])
    Emitted | test.finish ([object Object])
    [1] <teardown> Stopping recording promises
 › <screenshotOnFail> Test failed, saving screenshot
 › Screenshot has been saved to /Users/jplegoff/dev/tds-dashboard/output/Open_more_than_one_tab.failed.png
  ✖ FAILED in 5338ms

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

-- FAILURES:

  1) Dashboard test.js
       Open more than one tab:

      2 == 3
      + expected - actual

      -2
      +3
      
  ssertionError [ERR_ASSERTION]: 2 == 3
      at Test.Scenario (dashboard_test.js:17:12)
      at <anonymous>
      at process._tickCallback (internal/process/next_tick.js:160:7)```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions