【发布时间】:2015-08-08 22:59:29
【问题描述】:
var itemStatus = element(by.model('item.statusId')).getText();
这会导致量角器抛出:
未捕获的异常:等待 Protractor 同步时出错 页面:“在窗口上找不到 Angular”进程退出 错误代码为 1。
有人能解释为什么吗?这不会抛出:
var itemStatus = element(by.model('item.statusId'))
是不是和promise有关,直到找到元素才能执行.getText()?
我想我对这里的基础知识了解不足。
更新:
var itemStatus = element(by.model('item.statusId'))
// var itemStatus = element(by.model('item.statusId')).getText(); //was throwing with this
然后在下面使用,在代码被注释掉之前,我根本没有运行expect中的“.getText()”。
it('Should check item status, verify it is Checked Out.', function(){
expect(itemStatus.getText()).toBe('Checked Out');
//expect(itemStatus).toBe('Checked Out'); //this is how it was during error
});
和html:
<div class="form-control ng-binding ng-scope ng-isolate-scope ng-valid" ng-model="item.statusId" disabled="disabled">Checked In</div>
我想指出,即使所有的期望语句都被注释掉了,当我尝试 getText() 获取 var itemStatus 时,脚本也会抛出错误。
抱歉,忘记配置了:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['transfer_spec.js']
}
【问题讨论】:
-
Angular could not be found on the window通常表示量角器无法与角度应用程序同步。你在哪里定义了ng-app?你是手动引导角度吗? -
嘿亚历克,对不起,我发布了这个问题后不得不离开。除了删除 .getText() 之外,应用程序中没有任何变化——这就是它抛出或不抛出错误的原因。我想知道尝试获取元素的属性是否有问题,但我想不是。也许只是一个错误?
-
您确定应用程序本身没有任何变化吗?您是否升级了量角器或更改了量角器配置?
-
是的,我可以通过删除/添加 .getText() 从字面上使它抛出/不抛出 - 我测试了大约五次(刚才又一次)。澄清一下-这甚至不是问题,我在发帖之前就解决了这个问题。我只是想看看它是否是已知的。
标签: javascript angularjs selenium selenium-webdriver protractor