Access window object / browser scope from protractor
Assuming you are using a recent version of Protractor, let's say >= 1.1.0, hopefully >= 1.3.1
Attempting to access Browser side JS code directly from Protractor won't work because Protractor runs in NodeJS and every Browser side code is executed through Selenium JsonWireProtocol.
Without further detail, a working example:
browser.get('https://angularjs.org/');
One-liner promise that, as of today, resolves to '1.3.0-rc.3'
browser.executeScript('return window.angular.version.full;');
You can use it directly in an expect statement given Protractor's expect resolves promises for you:
expect(browser.executeScript('return window.angular.version.full;')). toEqual('1.3.0-rc.3');
Longer example passing a function instead of a string plus without expect
resolving the promise for you. i.e. for more control and for doing some fancy thing with the result.
browser.driver.executeScript(function() { return window.angular.version.full;}).then(function(result) { console.log('NodeJS-side console log result: ' + result); //=> NodeJS-side console log result: 1.3.0-rc.3});