无法在protractor.conf.js的onPrepare中找到元素

时间:2016-07-07 09:34:36

标签: angularjs jasmine protractor

我正在为Jasmineprotractor的AngularJS-app编写e2e-tests。我在protractor.conf.js中遇到了onPrepare - 函数的问题。 如果我在beforeAll中关注它可以正常工作:

browser.get('/login');
element(by.id('username')).sendKeys('John');

但如果我在onPrepare

中执行此操作
browser.driver.get('https://localhost:9000/login');
browser.driver.findElement(by.id('username')).sendKeys('John');

我收到此错误:

NoSuchElementError: no such element: Unable to locate element:    {"method":"css selector","selector":"*[id="username"]"}

任何提示?

P.S。:在量角器文档中,有一个链接到我用作模式的这个例子:https://github.com/angular/protractor/blob/master/spec/withLoginConf.js

1 个答案:

答案 0 :(得分:5)

为什么使用" browser.driver "格式?我们应该只针对非Angular应用程序而不是Angular应用程序遵循该格式。只需尝试在 onPrepare()中的 beforeAll()中尝试相同的代码。它会起作用。

onPrepare: function () {
      browser.get('https://localhost:9000/login');
      element(by.id('username')).sendKeys('John');
},

即使它不起作用,也要实现browser.wait()以加载完整的页面。