Javascript 无法将多个数组值与expect量角器中的动态数组进行比较
下面是我尝试自动化的场景: 在比较静态数组和动态数组时,我遇到了预期失败 下面是我的代码:Javascript 无法将多个数组值与expect量角器中的动态数组进行比较,javascript,jasmine,protractor,Javascript,Jasmine,Protractor,下面是我尝试自动化的场景: 在比较静态数组和动态数组时,我遇到了预期失败 下面是我的代码: describe('My Test', function() { var names1=""; var names2=""; var names3=""; it('Test starts', function() { browser.ignoreSynchronization = true; browser.get('https://www.w3schoo
describe('My Test', function() {
var names1="";
var names2="";
var names3="";
it('Test starts', function() {
browser.ignoreSynchronization = true;
browser.get('https://www.w3schools.com/angular/');
browser.sleep(5000).then(function(){
});
var results = element.all(by.css(".sidesection>p>a"));
results.get(0).getText().then(function(text){
console.log("Names are "+text);
names1=text;
})
results.get(1).getText().then(function(text){
console.log("Names are "+text);
names2=text;
})
results.get(2).getText().then(function(text){
console.log("Names are "+text);
names3=text;
})
});
it('Test starts2', function() {
var array=[names1,names2,names3];
console.log("URLS fetched are this:- "+names1);
console.log("URLS fetched are this:- "+names2);
console.log("URLS fetched are this:- "+names3);
var results2 = element.all(by.css(".sidesection>p>a"));
expect(results2.getText()).toContain(array);
});
});
您试图
expect(someArray)的问题。toContain(array)
这是不可能的。在字符串或正则表达式的情况下,这是可能的。对于您的解决方案,我们可以这样执行
element.all(by.css(".sidesection>p>a")).getText().then(function(menus){
for(var i=0; i<array.length; i++){
expect(menus.indexOf(array[i])!=-1).toBeTruthy();
}
});
element.all(by.css(“.sidesection>p>a”)).getText().then(函数(菜单){
对于(var i=0;i您试图期望的问题(someArray)。保留(数组)
,这是不可能的。对于字符串或正则表达式,这是可能的。对于您的解决方案,我们可以这样执行
element.all(by.css(".sidesection>p>a")).getText().then(function(menus){
for(var i=0; i<array.length; i++){
expect(menus.indexOf(array[i])!=-1).toBeTruthy();
}
});
element.all(by.css(“.sidesection>p>a”)).getText().then(函数(菜单){
对于(var i=0;i,您还可以尝试以单个字符串关键字的形式对数组值进行分段,然后在expect语句中使用它们,如下所示:
expect(results2.getText()).toContain(names1);
expect(results2.getText()).toContain(names2);
expect(results2.getText()).toContain(names3);
您还可以尝试以单个字符串关键字的形式对数组值进行分段,然后在expect语句中使用它们,如下所示:
expect(results2.getText()).toContain(names1);
expect(results2.getText()).toContain(names2);
expect(results2.getText()).toContain(names3);
输出:消息:[31m预期包含['选项卡','下拉列表','手风琴','转换权重','动画按钮','侧面导航','顶部导航','JS动画','模态框','进度条','视差','登录表单','HTML包含','谷歌地图','加载程序','工具提示','幻灯片','过滤器列表','排序列表']['Tabs'、'Dropdowns'、'Accordions'].[0m堆栈:错误:失败预期输出:消息:[31m预期值][‘选项卡’、‘下拉菜单’、‘手风琴’、‘转换权重’、‘动画按钮’、‘侧面导航’、‘顶部导航’、‘JS动画’、‘模态框’、‘进度条’、‘视差’、‘登录表单’、‘HTML包含’、‘谷歌地图’、‘加载程序’、‘工具提示’、‘幻灯片放映’、‘过滤器列表’、‘排序列表’]以包含[‘选项卡’、‘下拉菜单’、‘手风琴’]。[0m堆栈:错误:预期失败