嗯,看来您几天前就受够了。我建议您使用page-object,它将帮助您避免使用硬代码,并在将来更轻松地更改css。
主页对象(home.js)可能像这样:
module.exports = { url: function() { return 'http://m.unitel.ao/fit/'; }, commands: [{ getUrl: function(n) { if (n === 3) { return 'youtube.com/user/tvUNITEL'; } if (n === 1) { return 'facebook.com/unitel.ao/?fref=ts'; } if (n === 2) { return 'instagram.com/unitelangola/'; } if (n === 4) { return 'plus.google.com/110849312028181626033/posts'; } } }], elements: { facebook: { selector: '.bottom .socal>span:nth-child(1)', }, instagram: { selector: '.bottom .socal>span:nth-child(2)' }, youtube: { selector: '.bottom .socal>span:nth-child(3)' }, googleplus: { selector: '.bottom .socal>span:nth-child(4)' } }};并且在您的测试中应该像:
module.exports = { 'Social links': function(browser) { const homePage = browser.page.home(); var j = 0; for (var i in homePage.elements) { homePage .navigate() .waitForElementVisible(homePage.elements[i].selector, 5000, false, function() { browser.pause(3000); }) .click(homePage.elements[i].selector, function() { browser .pause(2000) .window_handles(function(result) { url = homePage.getUrl(j + 1); var home = result.value[0]; var handle = result.value[1]; browser .switchWindow(handle) .verify.urlContains(url) .closeWindow() .switchWindow(home); j += 1; }); }) } }};PS:如果您不知道如何创建页面对象,请访问http://nightwatchjs.org/guide#using-page-
objects文档。
在配置文件
Nightwatch.js中:
"src_folders" : ["tests"], "output_folder" : "reports", "custom_commands_path" : "", "custom_assertions_path" : "", "page_objects_path" : "./lib/pages", "globals_path" : "",



