Encountering issues with locating elements on the homepage after logging in.
Scenario: Click on profile name/icon and then click on the Logout button
it('Signout', function() {
//tried with following code
//browser.waitForAngularEnabled(true);
//locator below
//var profileIcon=element(by.model('user'));
common.btnClk(homepage.profileIcon);
common.btnClk(homepage.FCS_signoutbtn);
browser.close();
});
Workaround: The elements can only be found when refreshing the homepage using browser.refresh(). Please provide solutions without relying on this workaround.
Logs:
[31m- [39m[31mFailed: Timed out waiting for asynchronous Angular tasks to finish after 120 seconds. This may be because the current page is not an Angular application. Please see the FAQ for more details: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular
While waiting for element with locator - Locator: by.model("user").
The following tasks were pending:
- $timeout: function (){$rootScope.authenticated=false;$cookies.remove("access_token");$cookies.remove("organizationId");$cookies.remove("authenticated");$cookies.remove("user_infos");$cookies.remove("user_profile_infos");$cookies.remove("user_depts");ChatSocket.disconnect();$state.go('core.login',{},{reload:true});$rootScope.options={position:'toast-top-right',type:'error',iconClass:{name:'error'},timeout:'5000',extendedTimeout:'1000',html:false,closeButton:true,tapToDismiss:true,closeHtml:'<i class="fa fa-times"></i>'};var msg="Your Token is Expired!";$rootScope.openToast("Session Timeout",msg);}[39m
Executed 2 of 2 specs[31m (1 FAILED)[39m in 2 mins 55 secs.
[12:57:53] I/launcher - 0 instance(s) of WebDriver still running
[12:57:53] I/launcher - chrome #01 failed 1 test(s)
[12:57:53] I/launcher - overall: 1 failed spec(s)
[12:57:53] E/launcher - Process exited with error code 1
Additional Info: Attempted using browser.ignoreSynchronization = true; and located via xpath successfully. However, aiming to test using an angular approach. ** Website is angular site ** Tried with: browser.driver.manage().window().setSize(1280, 1024); browser.ignoreSynchronization = false; allScriptsTimeout: 160000, defaultTimeoutInterval: 160000
Please provide any solutions.