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)```
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
Details
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)```