Как создать сценарий xOR Protractor ExpectedCondition для ожидания прохождения элемента, если он не равен - PullRequest
0 голосов
/ 04 июля 2019

Я хотел бы создать ожидаемое условие, что если оба текста похожи, он потерпит неудачу, а если оба текста не похожи, он пройдет. Похоже на логику xOR. Я получил свой код ниже, но в нем есть ошибки, будет очень признателен, если вы можете помочь мне с этим. Спасибо

https://www.protractortest.org/#/api?view=ProtractorExpectedConditions

enter image description here enter image description here

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)

1 Ответ

0 голосов
/ 05 июля 2019

На самом деле 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...