check http status code using nightwatch

末鹿安然 提交于 2019-11-30 02:51:01

问题


how do I check the HTTP status code using nightwatch.js? I tried

  browser.url(function (response) {
     browser.assert.equal(response.statusCode, 200);
  });

but of course that does not work.


回答1:


Actually there is no way yet to get the response status of the page using Selenium (https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/141)

But what you can easily do is require "request" library, make your request to the webpage you want to open in your Selenium tests and validate that response status code equals 200:

const request = require('request');

request('http://stackoverflow.com', (error, response, body) => {
    browser.assert.equal(response.statusCode, 200);
});



回答2:


Try this

    var http = require("http");
    module.exports = {
      "Check Response Code" : function (client) {
          var request = http.request({
            host: "www.google.com",
            port: 80,
            path: "/images/srpr/logo11w.png",
            method: "HEAD"
          }, function (response) {
            client
            .assert.equal(response.statusCode, 200, 'Check status');
            client.end();
          }).on("error", function (err) {
            console.log(err);
            client.end();
          }).end();
         }
       };



回答3:


Supplementing to Hilarion Galushka's answer: you can use the perform() command from nightwatch to intergrate request and assert into your nightwatch tests. http://nightwatchjs.org/api/perform.html

For example:

module.exports = {
    'test response code': function (browser) {
        browser.perform(done => {
            request('http://stackoverflow.com', function (error, response, body) {
                browser.assert.equal(response.statusCode, 200);
                done()
            });
        })
    }
}


来源:https://stackoverflow.com/questions/36142331/check-http-status-code-using-nightwatch

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!