我想比较放置在带有量角器的两个html元素中的文本中的两个值(VALUE):
<p>
VALUE and other
</p>
...
<p>
Message about stuff containing VALUE and usefull information.
</p>
访问文本没有问题,但正如您所看到的,包含我的值的字符串必须以自定义方式删除。
我用来获取文本的.getInnerHtml()
的结果总是返回 promises 没有字符串。但我怎么不能从中获取一个字符串来修改它以将其与另一个修改过的字符串进行比较?
答案 0 :(得分:0)
您可以创建一个通用的getElementText函数,然后使用Expect来比较页面中的两个文本:
getElementText = function(elementLocator) {
return elementLocator.getText().then(function(text) {
return function() {
return text;
};
});
};
var text1 = getElementText(element(by.id('your text1 id')));
// do some actions on text1
var text2 = getElementText(element(by.id('your text2 id')));
expect(text1).toEqual(text2);
答案 1 :(得分:0)
一种选择是将promises解析为字符串数组,使用正则表达式从字符串中捕获值,然后比较:
Promise.all([
element1.getInnerHtml(),
element2.getInnerHtml()
]).then(function(results) {
var getValueFromString = function(inputString) {
return /(\d+)/.exec(inputString)[1];
};
var value1 = getValueFromString(results[0]);
var value2 = getValueFromString(results[1]);
expect(value1).toBe(value2);
});