Closed helinjiang closed 5 years ago
addAction(actionName, actionCall)
增加一个参数,指定自定义名字。例如下面的例子中指定了名字为 selectQuota
,则可以多一种方式来获取结果数据
caseParser.handleOperate(pageUrl, crawlerScriptPath, reqOpts, (testAction) => {
// 第一步:开始操作之前
testAction.addAction('init', function (nightmareRun) {
return nightmareRun.wait(500);
});
// 第二步:选中【5元】
testAction.addAction('selectQuota', function (nightmareRun) {
return nightmareRun.click('#root .display-withdraw .display-withdraw-quotas .selection .i0');
});
// 第三步:一秒后再次获取页面状态
testAction.addAction(function (nightmareRun) {
return nightmareRun.wait(1000);
});
}).then(function (result) {
// 方式一: 通过自定义名字获取
console.log(result.get('selectQuota'));
// 方式二: 通过数组队列序号来获取,等效于方式三
console.log(result.get(1));
// 方式三: 通过数组队列序号来获取,等效于方式二
console.log(result.data[1]);
});
注意,自定义名字 actionName
并非必选,如果不定义,则依然可以按照后面两种方式获得。
强烈建议自定义名字!
使用
caseParser.handleOperate()
方式来定制测试过程时,产生的数据存在于一个列表中。如果测试步骤较多,且后续删除一两个步骤,则列表的索引则发生了变化,此时测试用例需要重新核对索引才能够正常通过。因此,如果在定义
addAction()
时,传入指定的 key 值,则使用 map 表来获得对应的数据,次方式会更加灵活