我正在为Jasmine
和protractor
的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
答案 0 :(得分:5)
为什么使用" browser.driver "格式?我们应该只针对非Angular应用程序而不是Angular应用程序遵循该格式。只需尝试在 onPrepare()中的 beforeAll()中尝试相同的代码。它会起作用。
onPrepare: function () {
browser.get('https://localhost:9000/login');
element(by.id('username')).sendKeys('John');
},
即使它不起作用,也要实现browser.wait()以加载完整的页面。