量角器:检查 link 是否包含特定文本。预期 [true, true] 为 [true, true]

Protractor: Checking to see if a link contains certain text. Expected [ true, true ] to be [ true, true ]

我正在测试,如果用户的货币为 "EUR" 而另一种货币为 "GBP" 显示在页面顶部,那么我希望 [=包含文本 "EUR" 的 35=] 和包含文本 "GBP" 的另一个 link 位于页面下方。这包含在一个名为 "nav-tabs au-target" 的 div 中 当我 运行 我的脚本出现以下错误: Expected [ true, true ] to be [ true, true ]

这是我的页面对象文件:

if(text.indexOf("EUR") >-1 && text.indexOf("GBP") >-1){
expect(element.all(by.linkText("EUR"&&"GBP")).isDisplayed())
.toBe([true, true]);
console.log("EUR AND GBP buyer");}

我试图查看 "nav-tabs au-target" 是否包含 link 文本 "EUR" 和 "GBP" 而不是 element.all 但很难让它工作 谢谢

这可能不是 Protactor 或您的应用程序的问题,而是 Jasmine API 的不正确使用问题。

特别是:

expect(actualValue).toBe(expectedValue)

将进行以下检查:

actualValue === expectedValue

不适用于对象或数组。

对于对象或数组,您应该使用 toEqual 而不是 toBe,这将在两个值之间执行深度比较。

您可以在下面的 fiddle.

中看到实际效果