User interface 如何使用jasmine expect(check).toContain(value)用空格验证动态值?
我想验证一个值,它是动态的,可以从一个页面检索到另一个页面。该元素上也有空间。 下面是我的代码 第1页User interface 如何使用jasmine expect(check).toContain(value)用空格验证动态值?,user-interface,selenium-webdriver,protractor,ui-automation,User Interface,Selenium Webdriver,Protractor,Ui Automation,我想验证一个值,它是动态的,可以从一个页面检索到另一个页面。该元素上也有空间。 下面是我的代码 第1页 var PerAge = element(by.css("h1 > span.ng-binding")).getText(); 此元素上有空格,如->name 第2页->其他页面中显示的相同值。此元素上没有空间 var HumAge = element(by.repeater("slide in ctrl.slides track by $index")).getText(); 现
var PerAge = element(by.css("h1 > span.ng-binding")).getText();
此元素上有空格,如->name
第2页->其他页面中显示的相同值。此元素上没有空间
var HumAge = element(by.repeater("slide in ctrl.slides track by $index")).getText();
现在,我想验证第2页上的值是否相同。因为中继器有很多其他的值,所以我使用.toContain来验证这些值。
这里的问题是,PerAge有空间
var HumAge = element(by.repeater("slide in ctrl.slides track by $index")).getText();
我检查了这个堆栈溢出问题,但它不起作用。
它返回以下错误
预期“Shane”包含“Shane”
我尝试了trim
,但它无法识别trim。
我不能像下面那样使用.ToEqual
,因为元素有很多其他东西
expect(PerAge).toEqual('\xA0HumAge')
如果我理解正确,您可以在第1页检索如下值:
var PerAge = element(by.css("h1 > span.ng-binding")).getText();
并在第2页上使用它进行比较:
var HumAge = element(by.repeater("slide in ctrl.slides track by $index")).getText()
expect(HumAge).toEqual(PerAge);
由于存在空格,此操作失败
无法使用.trim()
的原因是.getText()
返回承诺。在使用.trim()
之前,首先需要解决承诺问题
你能做的就是举个例子。如果您使用像Babel这样的transpiler或使用都支持Async/Await的TypeScript,您还可以找到一个代码示例
var PerAge,HumAge;
元素(by.css(“h1>span.ng绑定”)).getText()
.然后(函数(文本){
PerAge=text.trim();
});
//转到第2页
元素(by.repeater(“slide in ctrl.slides track by$index”)).getText()
.然后(函数(文本){
HumAge=text.trim();
});
期望值(HumAge)、toEqual(PerAge);
//如果您可以使用async Wait,因为您可以使用Babel进行传输,或者使用typescript,那么您可以这样做来整理代码
//$是“css”-定位器的量角器缩写
const PerAge=(wait$('h1>span.ng binding').getText()).trim();
const HumAge=(wait$('[ng repeater=“slide in ctrl.slides track by$index”]').getText()).trim();
期望值(HumAge)、toEqual(PerAge)代码>