【问题标题】:Getting timeout when comparing GetAttribute on Protractor在量角器上比较 GetAttribute 时出现超时
【发布时间】:2016-08-30 21:16:02
【问题描述】:

我对量角器和 javascript 很陌生,当我将字符串与属性值进行比较时遇到问题。控制台上的消息是:函数在 30000 毫秒后超时。在 Protractor API 中说我不需要在期望条件时创建函数。当我创建函数并打印元素时,我得到了正确的值,但是当我尝试与期望进行比较时,我得到了 'TypeError: getAttribute is not thenable' 有人有任何提示吗?

类元素:

'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;

类断言:

'use strict';

var Elements = require('./elements');
var protractor = require('protractor');
var browser = protractor.browser;

function Assertions() {

    var elements = new Elements();

    return {
        assertDate: function() {
            var dateElement = elements.getDate();
            return expect(dateElement.getAttribute('value')).to.eventually.contain('2015-08-26');
        },
        assertUpdatedTexts: function() {
            return this.assertDate();
        }
    };
}

module.exports = Assertions;

谢谢!

【问题讨论】:

  • 所以我想说试试 dateElement.getAttribute('value').then(function(attr) { return expect(attr).toContain("2015-08-26"); [已改编来自@juliemr github.com/angular/protractor/issues/673],但听起来你知道这可以工作,但你不应该去那里。

标签: javascript protractor


【解决方案1】:

看起来您使用 Mocha 作为您的测试运行器? Protractor 破解了 Jasmine 以自动处理承诺,但 不是 Mocha。所以使用 Jasmine 或使用 .then() 处理承诺。

【讨论】:

    【解决方案2】:

    针对该问题,我们已修复更改断言日期函数:

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

    还是谢谢你的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多