我想创建一个预期的条件,如果两个文本相似,则将失败,如果两个文本都不相似,则将通过。类似于xOR逻辑。我的代码在下面,但是有错误,如果您能帮助我,将不胜感激。谢谢
https://www.protractortest.org/#/api?view=ProtractorExpectedConditions
const EC = protractor.ExpectedConditions;
const TextInfo1 = element(by.id('Text1'));
const TextInfo2 = element(by.id('Text2'));
console.log('Text1:', await TextInfo1.getText());
console.log('Text2:', await TextInfo2.getText());
await browser.wait(EC.or(EC.and(TextInfo1, EC.not(TextInfo2)),EC.and(EC.not(TextInfo1), TextInfo2)), 15000);
在代码的最后一行,我在TextInfo1和TextInfo2上遇到此错误。
Argument of type 'ElementFinder' is not assignable to parameter of type
'Function'.
Type 'ElementFinder' is missing the following properties from type
'Function': apply, call, bind, prototype, and 5 more.ts(2345)
答案 0 :(得分:0)
实际上ExpectedCondition
无法解决您的问题。更直接的方法是将一个函数定义为browser.wait()
的条件,如下所示:
const TextInfo1 = element(by.id('Text1'));
const TextInfo2 = element(by.id('Text2'));
await browser.wait(async function(){
txt1 = await TextInfo1.getText();
txt2 = await TextInfo1.getText();
return txt1 !== txt2;
}, 15000)
注意:如果您使用getText()
,请不要在wait()
之外拨打await
,我们希望wait()
提取两者的文本在超时15 seconds
内以间隔间隔多次。