【发布时间】:2015-10-17 09:16:49
【问题描述】:
我才刚刚开始使用 Protractor。
这是我的问题:
我想登录一个网站。当页面加载时,它会在显示用户名和密码字段以及登录按钮之前显示一个旋转的加载轮。
我的问题是clear() 或sendKeys() 的任何尝试都失败了,因为这些字段在屏幕上尚不可见,并且量角器正在尝试与它们进行交互。
InvalidElementStateError:无效元素状态:元素不是 当前可交互,可能无法操作。
我注意到在页面源中,最初的纺车有class='ngscope',过了一会儿它变成了class='ng-scope ng-hide'
整件事是这样的:
<div ng-show="Model.Busy" class="ng-scope ng-hide">
<div ng-class="{'control--inline': small, 'div-centre': !small}" class="div-centre">
<img ng-src="/assets/img/loading.gif" ng-class="{'very-small-loading': small}" src="/assets/img/loading.gif">
</div>
</div>
我正在使用的代码是:
describe('Testing', function() {
browser.driver.manage().window().maximize();
var username = element(by.model('Model.Username'));
var password = element(by.model('Model.Password'));
var loginbutton = element(by.css('[ng-click="Model.Logon()"]'));
beforeEach(function() {
browser.get('MY WEBSITE');
});
it('should log me in', function() {
// expect($('[ng-show=Model.Busy].ng-hide').isDisplayed()).toBeTruthy(); <-- this fails
username.clear();
password.clear()
username.sendKeys('1');
password.sendKeys('2');
loginbutton.click();
});
});
如何做到这一点?
【问题讨论】:
标签: javascript angularjs automation jasmine protractor