在写自动化测试的Node.js脚本时, 时常需要测试所写的case, 可能都需要去重新登录一遍,这将相当的耗时, 好在Selenium都借了Session的机制, 如果在最初的浏览器没有关闭的情况下,会给窗体创建一个唯一Session ID号,也是webdriverIo, client.init()这个执行的时候。所以我的思路是, 在init()的时候,将这个session ID保存在一个文本文件中, 再运行测试case的时候,不需要执行 如下:
var browser = webdriverjs.remote({ desiredCapabilities: { browserName: 'chrome', IsJavaScriptEnabled: true } });
browser.init(done);
而是执行
var browser = webdriverjs.remote("sessionId");
那关于如果保存这个Session ID呢, 如下:
var client = webdriverjs.remote({ desiredCapabilities: { browserName: config.BrowserName(), IsJavaScriptEnabled: true } });
client
.init(function (err, res) {
console.log('配件商城 后台 Session Id:' + res.sessionId);
sessionId = res.sessionId;
fs.writeFile(path.resolve('.') + '/sessione.txt', res.sessionId).then(function(res){
deferrad.resolve(client);
});
})
;
可以看到init提供了一个回调方法,得到sessionId。然后使用fs,去写文件就行。 如果去读文件得到sessionId,我想就不用解释了。