Skip to content
This repository was archived by the owner on Jul 29, 2024. It is now read-only.

Browser.wait() call times out constantly when using forked browser instance #5240

@v-anumolu

Description

@v-anumolu

Bug report

  • Node Version: 8.11.3 & 12.1.0
  • Protractor Version: 5.4.2
  • Angular Version: 6
  • Browser(s): firefox
  • Operating System and Version Mac OS - v10.14.5 & Ubuntu - v18.04.1
  • Your protractor configuration file
exports.config = {
directConnect: true,

//Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'firefox',
'moz:firefoxOptions': {
args: [ '--disable-gpu', '--no-sandbox'] //'--headless', 
},
acceptInsecureCerts: true,

},

framework: 'jasmine',

seleniumAddress: 'http://localhost:4444/wd/hub',

// insert test spec here
};
  • A relevant example test
 browser.waitForAngularEnabled(false);
        await browser.get("http://www.google.com")
        let br2 = await browser.forkNewDriverInstance();
        await br2.waitForAngularEnabled(true);

        await br2.get("http://**IP here****/login", 20000);

        var EC = protractor.ExpectedConditions;

        let elem = br2.element(by.id('loginButton'));

        await br2.wait(EC.visibilityOf(elem), 20000);

        let uname = br2.element(by.css("input[id='username']"));
        let pwrd = br2.element(by.css("input[id='password']"));

        await elem.click();

        await br2.wait(EC.visibilityOf(br2.element(by.css('.error-message'))));

        await uname.sendKeys("uname");
        await pwrd.sendKeys("passw");

        await elem.click();

        await br2.wait(EC.invisibilityOf(br2.element(by.css(".loading-icon"))));

        let hdrBttn = br2.element(by.id('openDialogue'));

        await br2.wait(EC.visibilityOf(hdrBttn));
        await hdrBttn.click();
  • Output from running the test
Failed: Timed out after 11000 ms
Stack:
ScriptTimeoutError: Timed out after 11000 ms
at Object.throwDecodedError (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:514:15)
at parseHttpResponse (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:519:13)
at /home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:441:30
at processTicksAndRejections (internal/process/task_queues.js:89:5)
From: Task: Protractor.waitForAngular() - Locator: By(css selector, .loading-icon)
at Driver.schedule (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at ProtractorBrowser.executeAsyncScript_ (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/built/browser.js:425:28)
at /home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/built/browser.js:456:33
at ManagedPromise.invokeCallback_ (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at /home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27
at /home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at processTicksAndRejections (internal/process/task_queues.js:89:5)
From: Task: <anonymous>
at pollCondition (/home/.nvm/veiver/lib/promise.js:2195:19)
at /home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2191:7
at new ManagedPromise (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at /home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2190:22
at TaskQueue.execute_ (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at /home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25
at /home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at processTicksAndRejections (internal/process/task_queues.js:89:5)
From: Task: <anonymous wait>
at scheduleWait (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2188:20)
at ControlFlow.wait (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2517:12)
at Driver.wait (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:934:29)
at run (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/built/browser.js:59:33)
at ProtractorBrowser.to.<computed> [as wait] (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/built/browser.js:67:16)
at UserContext.<anonymous> (/home/path/project/est_specs/quick_test.js:53:19)
at processTicksAndRejections (internal/process/task_queues.js:89:5)
From: Task: Run it("Should Check Inheritance Logic") in control flow
at UserContext.<anonymous> (/home/.nvm/versions/node/v12.1.0/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
From asynchronous test: 
Error
at Suite.<anonymous> (/home/path/project/test_specs/quick_test.js:15:5)
at Object.<anonymous> (/home/path/project/test_specs/quick_test.js:7:1)
  • Steps to reproduce the bug
  • Forked the new browser instance
  • go to URL with browser2
  • wait for some element on the page using browser2.wait()
  • do an action that triggers a page reload/transition e.g. successful login
  • attempt to wait for some element on new page using browser2.wait instance
  • observe timeout and stacktrace

EXPECTED behaviour

  • should be able to use .wait() and other ProtractorBrowser functions successfully with forkedInstance even after page transitions.

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