我有一个有两个页面的应用程序...第一页是登录页面,其中有一个登录按钮...一旦用户单击此登录按钮,他们就会被重定向到 login.html ....有两个输入。一个用于用户名,一个用于密码。
相关代码如下所示:
index.html
<a ui-sref="login" class="fa fa-sign-in" href="/login"> Login</a>
和
login.html
<input type="text" id="username" name="username" placeholder="Username" ng-model="user.username" required="" autocomplete="off" class="ng-pristine ng-invalid ng-invalid-required">
<input type="password" name="password" placeholder="Password" ng-model="user.password" required="" autocomplete="off" class="ng-pristine ng-invalid ng-invalid-required">
在我的测试中,我首先单击登录按钮并检查我是否已正确重定向到新页面。这个测试通过了,但是当我尝试在这些输入框中输入时出现错误,就好像这些框不存在一样。我试图让浏览器睡眠,但这也不起作用。
// in test/e2e/main.spec.js
describe('E2E: main page', function(){
'use strict';
var ptor;
// keep track of the protractor instance
beforeEach(function(){
browser.get('http://127.0.0.1:9000/');
ptor = protractor.getInstance();
});
it('it should load the login page once the login button is clicked', function(){
var link = element(by.css('.fa.fa-sign-in'))
link.click();
browser.sleep(4000);
expect(ptor.getCurrentUrl()).toMatch(/\/login/);
element(by.input('user.username')).sendKeys('test');
element(by.input('user.password')).sendKeys('test');
});
});
有什么建议吗?
更新:
使用 by.model 而不是 by.input 有效,但我正在阅读的书说第一个也应该有效..奇怪。