在比较Protractor上的GetAttribute时获取超时

时间:2016-08-26 15:46:54

标签: javascript protractor

我对量角器和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;

谢谢!

2 个答案:

答案 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});

无论如何,谢谢你的帮助!