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堆栈:错误:预期失败