angularjs - Error while waiting for the protractor to sync with the page: "Cannot read property 'get' of undefined" -


my test target page has sso integrated login. once hit page, sso integrated windows authentication occur directed home page.

i tried turn sync off , works first test check title second test, return error unable locate element , when turn on sync, return out of sync error , undefined error.

describe('test area ', function () {  var menuobjects = require('../page/menuobjects.js');  it('verify page title', function () {     menuobjects.setsyncoff();      browser.get('/home/');     expect(browser.gettitle()).toequal('home');     browser.driver.sleep(3000); });  it('navigate ', function () {     menuobjects.setsyncon();     menuobjects.menubutton.click();         }); }); 

error message navigate - menuobjects.setsyncon();

error while waiting protractor sync page: "cannot read property 'get' of undefined"

error message navigate - menuobjects.setsyncoff();

nosuchelementerror: no element found using locator: by.id("menu-link")

ng-app included in div within body:

<body style="width: 100%"> <div class="frame" style="width: 100%">     <div class="container-fluid" style="width: 100%">         <div class="" style="width: 100%">             <div style="width: 100%">                 <!--_angularbaselayout: begin-->                      <div ng-app="myhomeapp" ng-cloak class="ng-cloak">      <div ng-view id="ng-view"> </div> </div> 

any suggestion?

if ng-app not defined on html or body, need let protractor know setting rootelement configuration setting:

exports.config = {   seleniumaddress: env.seleniumaddress,    baseurl: env.baseurl,    ...    // selector element housing angular app.   rootelement: 'div#nested-ng-app' }; 

this make playing around switching syncing on , off not necessary - protractor wait angular "to settle down" before proceeding further test execution.


if doesn't nosuchelementerror error, can explicitly wait element become present of presenceof "expected condition":

var ec = protractor.expectedconditions;  var elm = browser.wait(ec.presenceof($('#menu-link')), 5000);