javascript - 检查 Protractor 中是否显示了 2 个元素中的 1 个

标签 javascript typescript protractor e2e-testing angularjs-e2e

在 Protractor 的测试中,我希望在最后看到 element1element2,我发现仅当显示 element1 并且 element2 不在页面上时才有效的“解决方案”

expect(element1.isDisplayed() || element2.isDisplayed()).toBeTruthy();

如果 element1 不在页面上但有 element2 - 我收到错误:

 Failed: No element found using locator: ...(element1 locator)

我不能在只有一种可能的期望的情况下编写测试,这是使用数据进行的测试,在我的情况下可能有 2 个结果。 我如何验证页面上是否显示了两个元素之一?

最佳答案

我不认为 Jasmine 理解表达式 element1.isDisplayed() || element2.isDisplayed() ,所以只要两个元素不显示,断言仍然通过。

ExpectedConditions API 提供和/或操作。

var EC = protractor.ExpectedConditions;
var condition = EC.or(EC.visibilityOf(element1), EC.visibilityOf(element2));

expect(condition()).toBeTruthy();

关于javascript - 检查 Protractor 中是否显示了 2 个元素中的 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51488055/

相关文章:

javascript - 为什么nativeElement未定义?

javascript - 需要将html标签存储在json文件中

javascript - Protractor 选择器的意外标识符

cookies - Protractor:获取 cookie 值返回对象而不是 cookie 值

javascript - 在 Angularjs 中添加具有不同值的新 HTML 内容

javascript - SQLite3Result 类的对象无法转换为字符串

javascript - Node.js JavaScript 语法

node.js - Passport js反序列化用户,变量未定义

javascript - 将数组从 Flash (AS3) 发送到 JavaScript

typescript - RXJS 和 Socket.io 有什么区别