0

Après le passage à une nouvelle fenêtre, seul 'urlContains' fonctionne.L'élément n'est pas visible après le passage à NewWindow

Rien d'autre ne se passe (ni cliquez ni elementVisible ou quoi que ce soit)

code partiel de Nightwatch:

'Order Module' : function(browser) { 
browser 
    .useXpath() 
    .waitForElementVisible("@OrderTab", 20000) 
    .pause(5000) 
    .click("@OrderTab") 
    .pause(5000) 
    .useCss() 
    .waitForElementVisible("input[title = 'New']", 20000) 
    .click("input[title = 'New']") 
    .useXpath() 
    .waitForElementVisible("@OrderTextBox']", 20000) 
    .verify.urlContains('https://invoiceit-s.na30.visual.force.com/apex/createJobStep1?retURL=%2Fa0K%2Fo&save_new=1&sfdc.override=1') 
    .setValue("@OrderTextBox", "Order Name") 
    .pause(10000) 
    .click("@LinkIconForNewWindow") 
    .pause(10000) 
    .window_handles(function(result) { 
     this.verify.equal(result.value.length, 2, '2 windows should be open') 
     var handle = result.value[1] 
     this.switchWindow(handle) 
     this.verify.urlContains('https://invoiceit-s.na30.visual.force.com/_ui/common/data/LookupPage?lkfm=j_id0%3AjobForm&lknm=j_id0%3AjobForm%3Apb%3Arender%3Aj_id38%3A0%3Aj_id39&lktp=001&lksrch=') 
     this.useXpath() 
     this.waitForElementVisible("@searchBox", 20000) 
    }) 
    .pause(20000) 
    .end() } 

Répondre

0

je ne suis pas familier avec Xpath, Pouvez-vous poster l'écran-impression du bloc d'élément ? Peut être je peux vous aider

PS: N'utilisez pas trop pause(), il ralentira votre programme de test, nightwatch vérifiera l'élément toutes les 500ms.

Édition 1: Le problème peut être dû à l'élément '@searchBox', est-ce dans le premier onglet de votre navigateur après avoir cliqué sur le bouton Pop-up? Si oui, il devrait être comme:

.window_handles(function(result) { 
     var home = result.value[0], // your first tab 
      handle = result.value[1]; // second tab 
     this 
      .switchWindow(handle) 
      .verify.urlContains('https://invoiceit') 
      .useXpath() 
      .switchWindow(home) // you need to switch back to first tab , even you close the pop-up. 
      .waitForElementVisible("@searchBox", 20000) 
    }) 

PS: ma réponse de ce message peut aider. Loop is not working properly - nightwatch

+0

Pas une erreur xPath. Cela ne fonctionne pas avec 'waitForElementVisible (' body ', 20000)' aussi. Comme le corps présente dans tous les DOM. Ai-je manqué quoi que ce soit dans la méthode switchWindow? – Maharshi

+0

Le Xpath rend votre code difficile à lire, par exemple, pouvez-vous changer ".////[@id='01r36000000RX00_Tab']/a" en quelque chose comme "#Tab", ou "div [name = tab]" Ce n'est pas facile pour moi (peut-être pour quelqu'un d'autre) de savoir ce que signifient les éléments de votre test: –

+0

Vérifiez le code maintenant @Bao Tran – Maharshi