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

Mic*_* K. 1 jasmine angularjs protractor

我正在用Jasmine和编写一个AngularJS-app的e2e-tests protractor.我onPrepare对protractor.conf.js中的-function 有问题.如果我在其中执行以下操作beforeAll正常:

browser.get('/login');
element(by.id('username')).sendKeys('John');
Run Code Online (Sandbox Code Playgroud)

但如果我这样做 onPrepare

browser.driver.get('https://localhost:9000/login');
browser.driver.findElement(by.id('username')).sendKeys('John');
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

NoSuchElementError: no such element: Unable to locate element:    {"method":"css selector","selector":"*[id="username"]"}
Run Code Online (Sandbox Code Playgroud)

任何提示?

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

Opt*_*rks 5

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

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

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