Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

undefined property 'bind' when using expected conditions

I'm trying to use the expected conditions function to make protractor wait for the presence of items on a page before continuing.

http://angular.github.io/protractor/#/api?view=ExpectedConditions

I have followed the example in the docs, but I am getting an error about an undefined property.

This seems to be the case when using any expected condition, not just related to the presenceOf function I am using here:

var EC = protractor.ExpectedConditions
var pixels = element.all(by.repeater('item in items'))
var pixelsLoaded = EC.presenceOf(pixels)

browser.wait(pixelsLoaded,10000)

Failed: Cannot read property 'bind' of undefined Stack: TypeError: Cannot read property 'bind' of undefined at [object Object].ExpectedConditions.presenceOf (/foo/bar/node_modules/gulp-protractor/node_modules/protractor/lib/expectedConditions.js:233:33) at Env. (/foo/bar/app/features/pixelmanager/test/pixelManagerPOTest.js:48:31) at /foo/bar/node_modules/gulp-protractor/node_modules/protractor/node_modules/jasminewd2/index.js:95:14 at [object Object].promise.ControlFlow.runInFrame_ (/foo/bar/node_modules/gulp-protractor/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1877:20) at [object Object].promise.ControlFlow.runEventLoop_ (/foo/bar/node_modules/gulp-protractor/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1755:8) at [object Object]. (/foo/bar/node_modules/gulp-protractor/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:2056:12) at goog.async.run.processWorkQueue (/foo/bar/node_modules/gulp-protractor/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/async/run.js:125:21) at runMicrotasksCallback (node.js:337:7) at process._tickCallback (node.js:355:11) From: Task: Run it in control flow at Object. (/foo/bar/node_modules/gulp-protractor/node_modules/protractor/node_modules/jasminewd2/index.js:94:33) ==== async task ==== Error at Suite. (/foo/bar/app/features/pixelmanager/test/pixelManagerPOTest.js:44:5) at Object. (/foo/bar/app/features/pixelmanager/test/pixelManagerPOTest.js:9:1) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12)

like image 871
Jon Duffy Avatar asked Apr 30 '15 13:04

Jon Duffy


1 Answers

Fixed by removing the improper call to all:

var pixels = element(by.repeater('item in items'));
like image 90
Jon Duffy Avatar answered Oct 15 '22 18:10

Jon Duffy