如何在 UI 自动化中捕获响应数据
How to catch the response data in UI automation
我正在使用 WebDriverIO
实现 UI 自动化,我正在尝试实现 登录 页面的自动化。
当我点击 Login
按钮时,*.com/user/login
请求将在后台触发。在这里,我想捕获 *.com/user/login
调用响应,因为我必须从响应中获取令牌才能继续下一个测试用例。
谁能帮帮我?
提前致谢!
使用 BrowserMob
、selenium 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);
}
我正在使用 WebDriverIO
实现 UI 自动化,我正在尝试实现 登录 页面的自动化。
当我点击 Login
按钮时,*.com/user/login
请求将在后台触发。在这里,我想捕获 *.com/user/login
调用响应,因为我必须从响应中获取令牌才能继续下一个测试用例。
谁能帮帮我?
提前致谢!
使用 BrowserMob
、selenium 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);
}