动态加载列表的各个测试用例-WDIO Mocha

时间:2018-07-27 09:23:52

标签: javascript selenium testing dynamic mocha

在我的网站内,我有一个模式。在此模式下,有选项卡,而在选项卡内-可能有子选项卡。

在这里,我的目标是使用WDIO,Mocha和Selenium,登录到系统,加载模式,然后对于每个选项卡(如果没有子选项卡)-验证表单上的数据。如果有ARE子选项卡,请验证每个子选项卡上的数据,然后移至下一个选项卡并重复。

这里是一个例子:

模式1包含以下标签:体育,科学,饮食

  • 体育标签中,有冰球和足球。
  • science 标签中,没有没有子标签
  • 食物标签中,有水果,蔬菜和蛋白质。

此示例的期望输出为:

  • 登录
  • 打开模式
  • 点击“ 体育”标签->查看子标签->单击每个子标签并验证数据
  • 点击 science 标签->看到没有子标签->验证数据
  • 点击食物标签->查看子标签->单击每个子标签并验证数据

请注意,这些标签页是动态加载的-因此可能会有更多/更少

我已经尝试过的步骤。

  describe('Test suite for modal 1', function(){
       it('Login', function(){
            functions.login(); //Logs into the system
       });

       it('Open modal', function(){
            functions.openModal(); //Opens Modal
            tabs = functions.getTabs(); //Global variable tabs[]
       });

       tabs.forEach(function(tab){
            tab.click(); //Loads the tab
            subtabs = functions.getSubTabs(); //Global variables subtabs[]
            it('Validate tab', function(){
                 if(subtabs.length > 0){ //If there ARE subtabs
                      subtabs.forEach(function(subtab){ //For each subtab
                            it('Validate subtab', function(){
                                 subtab.click(); //Load the subtab
                                 validateForm(); //Validate the data
                            });
                      });
                 } 
                 validateForm();
            });
       });
   });

我现在知道这是行不通的,因为它不能相互嵌套。

我也尝试过

describe('Test Modal', function(){
            for (const item in tabs) {
                    it('Should now loop through tabs ', function (item) {
                        console.log(arr1[item].getText());
                        browser.pause(2000);
                    })


                for (const item2 in subtabs) {
                        it('Should now loop through subtabs', function (item) {
                            console.log(arr2[item2].getText());
                            browser.pause(2000);
                        })
                }
            }
        })

但是因为for循环不在测试用例之内,所以它们会立即运行,因此会出错,因为选项卡和子选项卡都是空白的(因为它(“ login”)和它(“ openmodal”)都没有运行

任何帮助将不胜感激。

0 个答案:

没有答案