嗨,我正在使用 PhantomJS 和 nightmare 进行自动化,一旦我的 UI 自动化通过 nightmare 执行,我需要进行 DB 调用,我正在使用 nightmare 的评估功能来进行 DB 调用,我期望调用会进行同步但实际发生的是我的 DB 函数在 UI 自动化执行完成之前首先被触发,因为结果是传递了不正确的数据进行 DB 验证。以下是 ma 代码示例
exports.rejectProcess = function (testData, resultfolder, ConnectionStrings) {
"use strict";
return function (nightmare) {
nightmare
.waitForEnable('#Process')
.click('#Process')
.wait()
.waitForNotVisible('div.spinnerFullLight')
.waitForEnable('#createProcess')
.click('#createProcess')
.wait()
.click('#ContinueBtn')
.wait()
....etc
.evaluate(
function ()
{
var element = document.querySelector('#ProcessNumber');
return { data: element.value }
},
function (result) {
nightmare
.waitForEnable("#spanDashBoardArrowd")
.click("#spanDashBoardArrowd")
.waitForVisible("#topNavdropdownSubMenu")
.click("#navApprovals")
.wait()
...etc
.click("#Reject")
.evaluate(function () { nightmare.wait(60000);},valuateDB(testData, ConnectionStrings, result.data))
})
}
};
function valuateDB(testData, ConnectionStrings,concessionNumber)
{
console.log(concessionNumber);
var ApprovalInfo = dataOperation.getRejectStatus(testData, ConnectionStrings, concessionNumber); ------->place where i make the DB call
console.log(ApprovalInfo);
}