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);