angular - 如何创建 xOR Protractor ExpectedCondition 打字稿以等待元素通过(如果不相等)
问题描述
我想创建一个预期条件,如果两个文本相似,它将失败,如果两个文本不相似,它将通过。类似于 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)
解决方案
其实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
推荐阅读
- html - CSS重置边距问题。我无法摆脱边距
- python - systemd - 作为 systemd 服务运行时,python 脚本不旋转日志文件
- c - ARM 汇编:如何交换数组元素以实现排序?
- list - Ansible - 读取文件,提取特定行,提取列并分配给变量
- python - 将月份名称转换为相应的数字。(Python)
- python - 安装 tensorflow 时遇到问题(是的,我有 python 3.7.9 64bit)
- python - 为什么 polyglot 不返回未音译的文本?
- javascript - 转换照片中的画布
- c++ - 仍然需要内联,因为编译器会自动内联
- python - 将文件复制到外部驱动器:目标目录路径无效