【发布时间】:2017-06-01 18:59:27
【问题描述】:
在我正在测试的页面上,用户可以拥有一种货币或多种货币(即欧元和美元),货币/货币将出现在页面顶部的同一个 div 中。 如果用户有多种货币,则每种货币的标签会在页面下方显示,如果用户只有一种货币,则不会出现标签(因为用户无需切换标签)。
我可以通过检查标题中包含的文本是否与货币选项卡中包含的文本匹配来测试多币种用户。
但是,由于没有显示单一货币的标签,我不确定如何测试。
例如,如果我只有“欧元”货币,有没有办法做类似的事情
if element(by.className("currencies"))contains 'EUR'
&& doesn't contain 'USD' && doesn't contain 'GBP'
expect element(by.className("tabs").toDisplay.toBeFalsy()
这是页面对象文件的代码
this.checkCurrency = function(currency) {
var checkBalance = element(by.className("balances"));
checkBalance.getText().then(function (text) {
if (text.indexOf("GBP" && "EUR")>= 0) {
expect(element.all(by.linkText("GBP")).isDisplayed()).toBeTruthy();
console.log("EUR GBP buyer");
}
else if (text.indexOf("GBP" && "USD")>= 0) {
expect(element.all(by.linkText('USD')).isDisplayed()).toBeTruthy();
console.log("USD GBP buyer");
}
else
{
console.log("false");
}
});
};
【问题讨论】:
-
expect(element(by.className("tabs").isDisplayed()).toEqual(false)不适合你吗? -
感谢您的回复。问题是我需要能够检查是否包含 'EUR' 和 'USD'/'GBP' 但我还需要检查它是否只包含 'EUR' 而不包含 'USD /英镑'。以上在理论上可行,但 If Else 无法区分是否仅包含“EUR”或包含“EUR”和另一种货币。嗯,喜欢
if (text.indexOf("string") === -1)?或者,如果不使用if (text.indexOf("EUR") >= 0 && text.indexOf("USD") == -1 && text.indexOf("GBP") == -1)而不是使用正则表达式,那么整个事情看起来会更干净:if (text.matches(\^EUR$\g) && text.matches(\^(?!.*(USD|GBP)).*$\g)谢谢你,我会试试看,看看效果如何
标签: node.js protractor automated-tests aurelia e2e-testing