如何在 UI 自动化中捕获响应数据

How to catch the response data in UI automation

我正在使用 WebDriverIO 实现 UI 自动化,我正在尝试实现 登录 页面的自动化。

当我点击 Login 按钮时,*.com/user/login 请求将在后台触发。在这里,我想捕获 *.com/user/login 调用响应,因为我必须从响应中获取令牌才能继续下一个测试用例。

谁能帮帮我?

提前致谢!

使用 BrowserMobselenium server 及以下代码捕获网络流量。有关详细信息,请参阅我的 答案。然后解析 stuff.har ,以获得所需的结果。 Har 文件是 json 格式。

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);        

}