量角器在分配变量时引发错误

时间:2015-08-08 22:59:29

标签: javascript angularjs selenium selenium-webdriver protractor

var itemStatus =  element(by.model('item.statusId')).getText();

这会导致量角器抛出:

  

未捕获异常:等待Protractor同步时出错   页面:"在窗口上找不到Angular"流程已退出   错误代码1。

有人可以解释原因吗?这不会抛出:

var itemStatus = element(by.model('item.statusId'))

它与promises有关,它可以执行.getText()直到元素​​被定位?

我想我对这里的基础知识知之甚少。

更新

var itemStatus = element(by.model('item.statusId'))
// var itemStatus =  element(by.model('item.statusId')).getText(); //was throwing with this

然后在下面使用,在代码被注释掉之前,我根本没有运行" .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>

我想要注意的是,即使将所有expect语句注释掉,当我尝试使用var itemStatus的getText()时,脚本也会抛出错误。

抱歉,忘了配置:

exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['transfer_spec.js']  
}

1 个答案:

答案 0 :(得分:1)

我认为这与您定义col1 col2 a b 12 14 56 x b 23 234 2342 2 a d 23 45 变量的位置有关。如果&#39; s定义出的范围itemStatus,你可能陷入量角器和角之间的同步问题 - 此刻describe/it被调用,它&#39; S太早,{{ 1}}尚未收到Angular&#34;我准备好了#34;信号。您是否在getText()内或页面对象内声明:

protractor

用法:

describe/it