在我的网站内,我有一个模式。在此模式下,有选项卡,而在选项卡内-可能有子选项卡。
在这里,我的目标是使用WDIO,Mocha和Selenium,登录到系统,加载模式,然后对于每个选项卡(如果没有子选项卡)-验证表单上的数据。如果有ARE子选项卡,请验证每个子选项卡上的数据,然后移至下一个选项卡并重复。
这里是一个例子:
模式1包含以下标签:体育,科学,饮食
此示例的期望输出为:
请注意,这些标签页是动态加载的-因此可能会有更多/更少
我已经尝试过的步骤。
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”)都没有运行
任何帮助将不胜感激。