2016-05-13 6 views
2

Ich arbeite in UI-Automatisierung Testprojekt Ich muss eine Ajax-Anfrage an meinen Server, aber in Nighwatch.js einige Funktionen von Vanille Javascript und JQuery-Funktionen sind nicht akzeptabel,So senden Ajax erhalten Anfrage in Nightwatch.js

also, wenn irgendjemand irgendwelche Erfahrung hat, um Ajax Anfrage an Server in nightwatch.js Umgebung zu senden, dann bitte geben Sie mir einige Informationen/Vorschläge.

+0

Vielleicht xhr verwenden? https://developer.mozilla.org/pl/docs/XMLHttpRequest – us3r

+0

Ich versuchte Code von gegebener URL, aber ich bekomme folgenden Fehler. "XMLHttpRequest ist nicht definiert" –

Antwort

1

Nach langer Suche fand ich request.js ein Knoten-Modul, ich habe mein Problem durch die Installation "request" node module gelöst. Nach der Installation kann ich "GET" und "POST" Anfragen an meine Server innerhalb Nightwatch Umgebung durchführen. Ich schreibe ein Stück Code, der wie ein Zauber wirkt.

/* jshint expr: true */ 
module.exports = { 
'@tags' : ['book'], 
beforeEach : function (client) { 

}, 
after : function (client) { 
    client.end(); 
}, 
wGroup: { 
    book_url: "https://example.myApi.mycompany.in" 
}, 

userSettings: Array(), 

"Get all settings": function (client, done) { 
    var widget = this.wGroup; 
    client.getreq(widget.book_url + "/api/store", widget, function (response) { 
     client.assert.equal(response.statusCode, 200, "201 Created"); 
     var objects = response.body.objects; 
     client.userSettings = objects; 
     console.log('Found number of settings: ' + client.userSettings.length); 
     client.end(); 
    }); 
}, 

"Remove settings": function (client, done) { 
    var widget = this.wGroup; 
    var objects = client.userSettings; 
    for(i=0; i<objects.length; i++) { 
     var obj = objects[i]; 
     console.log('Removing user settings id ' + obj.id); 
     client.deletereq(widget.book_url: l + "/api/store" + obj.id, widget, function (resp) { 
      client.assert.equal(resp.statusCode, 204, "204 Created"); 
      client.end(); 
     }); 
    } 
    }, 
};