Javascript 要与值进行比较的量角器承诺返回字符串

Javascript 要与值进行比较的量角器承诺返回字符串,javascript,jasmine,promise,protractor,e2e-testing,Javascript,Jasmine,Promise,Protractor,E2e Testing,我正在使用量角器测试AngularJS网站。我需要一些量角器函数来返回一个承诺值,以正确的方式继续我的代码 特别是,我需要从输入中获取值,并将其与某个常量进行比较。试着这样做: var p1 = new Promise(function (resolve, reject) { if (element(by.id('policyNumber')).getAttribute('value') == parameter.getJinyDotazParams().attribu

我正在使用量角器测试AngularJS网站。我需要一些量角器函数来返回一个承诺值,以正确的方式继续我的代码

特别是,我需要从输入中获取值,并将其与某个常量进行比较。试着这样做:

    var p1 = new Promise(function (resolve, reject) {

        if (element(by.id('policyNumber')).getAttribute('value') == parameter.getJinyDotazParams().attributes.policyNumber) {
            resolve("Success");
        } else {
            reject("Error");
        }
    });

    p1.then(function (value) {
        console.log(value + 'yaaay'); // Success!
    }, function (reason) {
        console.log(reason + 'Q_Q'); // Error!
    });
例如,使用布尔返回所有工作:

    var p1 = new Promise(function (resolve, reject) {

        if (element(by.id('policyNumber')).isDisplayed()) {
            resolve("Success");
        } else {
            reject("Error");
        }

        //resolve("Success!");
        // or
        //reject("Error!");
    });

    p1.then(function (value) {
        console.log(value + 'yaaay'); // Success!
    }, function (reason) {
        console.log(reason + 'Q_Q'); // Error!
    });

如果您使用的是Jasmine框架,那么您可以使用expect()方法来验证承诺的输出。比如说,

var displayedValue =element(by.id('policyNumber')).getAttribute('value')
var actualValue = parameter.getJinyDotazParams().attributes.policyNumber
expect(displayedValue).toEqual(actualValue)

没想到,那会这么容易

element(by.id('policyNumber')).getAttribute('value').then(function (val) {
    if (val == parameter.getJinyDotazParams().attributes.policyNumber) {
        console.log('YAAAAY!');
    }
})

当然,但我想在代码中继续输入值。