3

I am using WebDriverIO for the UI Automation and I am trying to automate for a login page.

When I click the Login button, *.com/user/login request will get trigger in the background. Here, I want to catch that *.com/user/login call response, because I have to get a token from the response to proceed to next test case.

Can anyone please help me?

Thanks in advance!

Raja
  • 127
  • 1
  • 6

1 Answers1

1

Capture network traffic using BrowserMob, selenium server and below code. For more details , refer my this answer. Then parse stuff.har , to get desired result. Har file is in json format.

var Proxy = require('browsermob-proxy').Proxy
    , webdriverio = require("./node_modules/webdriverio/")
    , fs = require('fs')
    , proxy = new Proxy()
;

proxy.cbHAR('webdriver.io', doSeleniumStuff, function(err, data) {

        if (err) {

            console.error('ERR: ' + err);
        } else {

            fs.writeFileSync('stuff.har', data, 'utf8');


        }
});

function doSeleniumStuff(proxy, cb) {

    var browser = webdriverio.remote({
        host: 'localhost'
        , port: 4444
        , desiredCapabilities: { browserName: 'firefox', seleniumProtocol: 'WebDriver', proxy: { httpProxy: proxy } }
    });

    browser
        .init()
        .url("http://webdriver.io")
        //.setValue("#yschsp", "javascript")
        //.submitForm("#sf")
        .end().then(cb);        

}
Community
  • 1
  • 1
user1207289
  • 2,575
  • 4
  • 26
  • 54