Protractor 比较两种承诺的价值

Protractor 比较两种承诺的价值,protractor,Protractor,我希望实现以下目标: var textPromise1 = element(by.id('id1')).getText(); var textPromise2 = element(by.id('id2')).getText(); if(textPromise1.SOMELOGIC == textPromise2.SOMELOGIC ) console.log('These are equal') 我知道这个承诺是用.then()解决的。然而,我想知道是否有某种方法可以实现上述目标 谢谢,您需

我希望实现以下目标:

var textPromise1 = element(by.id('id1')).getText();
var textPromise2 = element(by.id('id2')).getText();

if(textPromise1.SOMELOGIC == textPromise2.SOMELOGIC )
console.log('These are equal')
我知道这个承诺是用.then()解决的。然而,我想知道是否有某种方法可以实现上述目标


谢谢,

您需要解决这两个文本的承诺。这里更好的方法是使用
expect
,让expect为您解决承诺。这就是我自己解决这类问题的方法-

    textPromise1.then(function(data){
    //here you can call an external function that will apply some logic to your data string
    var string1= data.someLogicFunction1();//or perform whatever operations are required on data
    expect(someLogicFunction2(textPromise2)).toBe(string1);

})

嗨,拉胡尔,谢谢你的回复。我已经知道了上述方法(正如在文章中提到的)。expect将在我的结果文件中显示。然而,这里我想要实现的只是一个IF-ELSE条件。还有其他更好的比较方法吗?这种情况不会发生!我试过了。除非我们返回var1,否则它在n之前不会离开.then()块!如果我们归还它,那么它也将成为一个承诺,然后需要再次使用解决。然后,从而再次呈现相同的问题!我声明全局var flag=false;然后在.Then块内,我使用global.flag=true更改了其值,并将其打印到.Then范围之外。它将值指定为“undefined”(未定义)这也不起作用:(相同的行为。显示值为“undefined”(未定义)是。我在.then块内打印了正确的值。这是我所做的:未在任何位置声明global.flag。在.then块内为global.flag赋值=true。然后访问.then()内/外的值)