angular / protractor

E2E test framework for Angular apps
http://www.protractortest.org
MIT License
8.75k stars 2.31k forks source link

browser.get is not working when only the url hash changes. #4723

Open joeheyming opened 6 years ago

joeheyming commented 6 years ago

Bug report

I recently updated to the most recent protractor: 5.3.0 I have an issue where calling browser.get when only the url hash changed is hanging.

Basically, I have the same path, but I updated the hash: await browser.get('/foo#bar'); await browser.get('/foo#baz');

The test continues to wait until a timeout occurs:

(Session info: chrome=64.0.3282.186) (Driver info: chromedriver=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752),platform=Linux 4.4.0-1049-aws x86_64)

Here is my stacktrace:

 Failed: timeout (Session info: chrome=64.0.3282.186) (Driver info: chromedriver=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752),platform=Linux 4.4.0-1049-aws x86_64) Stack: TimeoutError: timeout (Session info: chrome=64.0.3282.186) (Driver info: chromedriver=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752),platform=Linux 4.4.0-1049-aws x86_64) at Object.checkLegacyResponse (/project/node_modules/selenium-webdriver/lib/error.js:546:15) at parseHttpResponse (/project/node_modules/selenium-webdriver/lib/http.js:509:13) at doSend.then.response (/project/node_modules/selenium-webdriver/lib/http.js:441:30) at process._tickDomainCallback (internal/process/next_tick.js:129:7) From: Task: WebDriver.navigate().to('https://REDACTED') at Driver.schedule (/project/node_modules/selenium-webdriver/lib/webdriver.js:807:17) at Navigation.to (/project/node_modules/selenium-webdriver/lib/webdriver.js:1133:25) at Driver.get (/project/node_modules/selenium-webdriver/lib/webdriver.js:988:28) at ProtractorBrowser.get (/project/node_modules/protractor/built/browser.js:655:32) at UsersPage._callee2$ (/project/iam/pages/UsersPage.js:36:19) at tryCatch (/project/node_modules/regenerator-runtime/runtime.js:62:40) at Generator.invoke [as _invoke] (/project/node_modules/regenerator-runtime/runtime.js:296:22) at Generator.prototype.(anonymous function) [as next] (/project/node_modules/regenerator-runtime/runtime.js:114:21) at Generator.tryCatcher (/project/node_modules/bluebird/js/release/util.js:16:23) at PromiseSpawn._promiseFulfilled (/project/node_modules/bluebird/js/release/generators.js:97:49) at UsersPage. (/project/node_modules/bluebird/js/release/generators.js:201:15) at UsersPage.get (/project/iam/pages/UsersPage.js:156:22) at _callee2$ (/project/iam/01_usersPageSpec.js:16:16) at tryCatch (/project/node_modules/regenerator-runtime/runtime.js:62:40) at Generator.invoke [as _invoke] (/project/node_modules/regenerator-runtime/runtime.js:296:22) at Generator.prototype.(anonymous function) [as next] (/project/node_modules/regenerator-runtime/runtime.js:114:21) at Generator.tryCatcher (/project/node_modules/bluebird/js/release/util.js:16:23) at PromiseSpawn._promiseFulfilled (/project/node_modules/bluebird/js/release/generators.js:97:49) at UserContext. (/project/node_modules/bluebird/js/release/generators.js:201:15) at /project/node_modules/jasminewd2/index.js:112:25 at new ManagedPromise (/project/node_modules/selenium-webdriver/lib/promise.js:1077:7) at ControlFlow.promise (/project/node_modules/selenium-webdriver/lib/promise.js:2505:12) at schedulerExecute (/project/nodemodules/jasminewd2/index.js:95:18) at TaskQueue.execute (/project/nodemodules/selenium-webdriver/lib/promise.js:3084:14) at TaskQueue.executeNext (/project/node_modules/selenium-webdriver/lib/promise.js:3067:27) at asyncRun (/project/node_modules/selenium-webdriver/lib/promise.js:2927:27) at /project/node_modules/selenium-webdriver/lib/promise.js:668:7 at process._tickDomainCallback (internal/process/next_tick.js:129:7) From: Task: Run beforeEach in control flow at UserContext. (/project/node_modules/jasminewd2/index.js:94:19) at runCallback (timers.js:651:20) at tryOnImmediate (timers.js:624:5) at processImmediate [as _immediateCallback] (timers.js:596:5) From asynchronous test: Error at Suite. (/project/iam/01_usersPageSpec.js:14:3) at Object. (/project/iam/01_usersPageSpec.js:6:1) at Module._compile (module.js:571:32) at loader (/project/node_modules/babel-register/lib/node.js:144:5) at Object.require.extensions.(anonymous function) [as .js] (/project/node_modules/babel-register/lib/node.js:154:7) at Module.load (/project/node_modules/coffee-script/lib/coffee-script/register.js:45:36) at tryModuleLoad (module.js:447:12) at Function.Module._load (module.js:439:3) at Module.require (module.js:498:17) at require (internal/module.js:20:19) at /project/node_modules/jasmine/lib/jasmine.js:93:5 at Array.forEach (native) at Jasmine.loadSpecs (/project/node_modules/jasmine/lib/jasmine.js:92:18) at Jasmine.execute (/project/node_modules/jasmine/lib/jasmine.js:197:8) at /project/node_modules/protractor/built/frameworks/jasmine.js:132:15 at Function.promise (/project/node_modules/q/q.js:682:9) at /project/node_modules/protractor/built/frameworks/jasmine.js:104:14 at _fulfilled (/project/node_modules/q/q.js:834:54) at self.promiseDispatch.done (/project/node_modules/q/q.js:863:30) at Promise.promise.promiseDispatch (/project/node_modules/q/q.js:796:13) at /project/node_modules/q/q.js:604:44 at runSingle (/project/node_modules/q/q.js:137:13) at flush (/project/node_modules/q/q.js:125:13) at _combinedTickCallback (internal/process/next_tick.js:67:7) at process._tickCallback (internal/process/next_tick.js:98:9)

joeheyming commented 6 years ago

Also, I use --direct to run the tests.

kkrishan commented 6 years ago

Hi all , any update on this issue . I am also having this issue with following setup : Protractor version: 5.3.2 chromedriverVersion: '2.37.544315 Chrome : 'version' => '67.0.3396.87', platform=Linux 3.10.0-862.3.2.el7.x86_64 x86_64 Docker : node:9-stretch

waja-scw commented 4 years ago

I am working around this issue by calling .get() a second time with the same values eg: await browser.get('/foo#bar'); await browser.get('/foo#baz'); await browser.get('/foo#baz');