量角器:检查 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.
中看到实际效果
我正在测试,如果用户的货币为 "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.
中看到实际效果