我对量角器和javascript很新,当我将字符串与属性值进行比较时,我遇到了问题。控制台上的消息是:函数在30000毫秒后超时。在Protractor API中说我不需要在期望条件时创建函数。当我创建函数并打印元素时,我得到正确的值,但是当我尝试与期望进行比较时,我得到了' TypeError:getAttribute不可用'有人有任何提示吗?
类元素:
<persistence-unit name="tarefas">
<!-- provedor/implementacao do JPA -->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- entidade mapeada -->
<class>br.com.abc.models.Usuario</class>
<properties>
<property name="hibernate.connection.url" value= .... //The rest of properties...
</properties>
</persistence-unit>
类断言:
'use strict';
var protractor = require('protractor');
var element = protractor.element;
var by = protractor.by;
function Elements() {
return {
getDate: function() {
return element(by.id('visit-date'));
}
};
}
module.exports = Elements;
谢谢!
答案 0 :(得分:0)
看起来就像你使用Mocha作为你的测试跑步者一样?量角器攻击Jasmine自动处理承诺,但不 Mocha。因此,请使用Jasmine或使用.then()
处理承诺。
答案 1 :(得分:0)
对于这个问题,我们修改了断言日期函数:
assertDate: function(datetime) {
var dateElement = elements.getDate();
var dateValue = dateElement.getAttribute('value');
return expect(dateValue).to.eventually.contain(datetime.format('YYYY-MM-DD'));
},
并传递日期参数,如正确的日期而不是字符串:
var VISIT_DATETIME = moment({y: 2016, M: 7, d: 21, h: 12, m: 20});
var VISIT_DURATION = moment.duration({hours: 3, minutes: 20});
无论如何,谢谢你的帮助!