2017-10-11 9 views
0

Comment écrire un if/else simple dans NightwatchJS? Si l'élément est présent, cliquez sur cet élément, sinon cliquez sur un autre élément.Nightwatch - Effectuer une autre action si l'élément n'est pas présent

'Test2: click login button': function(client) { 

    client.expect.element('.login .btn').to.be.present; 
    client.click('.login .btn'); 


// if "client.expect.element('.login .btn') is not present(visible)" - 
//  but "client.expect.element('a.menu-link').to.be.present(visible)"; 
// client.click('a.menu-link'); 


    client.pause(1000); 
}); 

},

Répondre

1

Il peut y avoir plus d'une façon de faire, mais j'utiliser .element() de la Webdriver Protocol fonction:

'Test2: click login button': client => { 
    const buttonSelector = '.login .btn'; 
    const menuLinkSelector = 'a.menu-link'; 
    client.element('css selector', buttonSelector, result => { 
    if (result.status > -1) { 
     // `.login .btn` is present 
     client.click(buttonSelector); 
    } else { 
     // else, check for `a.menu-link` 
     client.element('css selector', menuLinkSelector,() => { 
     client.click(menuLinkSelector); 
     }); 
    } 
    }); 
    client.end(); 
}