2016-07-06 4 views
0

Verwenden der neuesten Version von Web-Treiber und Nightwatchjs.Mit Nightwatchjs können keine Werte von der Webseite abgerufen werden

Mit dem untenstehenden Code bekomme ich nie etwas in gottTags. Wenn ich einen Haltepunkt innerhalb gesetzt:

browser.elementIdText(element, function (result) { 
         gotTags.push(result.value); 
         console.log(result.value); 
}); 

Es bricht nie darauf.

Ich weiß, dass die Abfrage funktioniert und gibt 10 Elemente:

document.querySelector('iframe[src="about:blank"]').contentDocument.querySelectorAll('.gtm-debug-tags-fired-container .gtm-debug-tags-card-title') 

Der Code:

browser 
     .url(config.url) 
     .waitForElementPresent('body', 5000) 
     .waitForElementPresent('iframe[src="about:blank"]', 10000) 
     .execute(function(){ 
       return document.querySelector('iframe[src="about:blank"]').contentDocument.querySelectorAll('.gtm-debug-tags-fired-container .gtm-debug-tags-card-title') 
      }, function(elems){ 
       var element; 

       for (var i = 0; i < elems.value.length; i++) { 
        element = elems.value[i].ELEMENT; 

        browser.elementIdText(element, function (result) { 
         gotTags.push(result.value); 
         console.log(result.value); 
        }); 
       } 

Antwort

2

Dokumentation http://nightwatchjs.org/api#execute sagt, du bist der zweite fehlt (oder die dritte im Moment) Parameter.

Dieser Teil muss der dritte Parameter sein, da der zweite der Parameter args für die Funktion im ersten Parameter ist.

Also, ich denke, es wie

.execute(function(){ 
      return document.querySelector('iframe[src="about:blank"]').contentDocument.querySelectorAll('.gtm-debug-tags-fired-container .gtm-debug-tags-card-title') 
     }, [], function(elems){ // added [] here as second parameter 
      var element; 

      for (var i = 0; i < elems.value.length; i++) { 
       element = elems.value[i].ELEMENT; 

       browser.elementIdText(element, function (result) { 
        gotTags.push(result.value); 
        console.log(result.value); 
       }); 
      } 
+0

Guter Fang sein muss! Ich werde morgen nachsehen - danke! – jBoive