0

嗨,我正在使用 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);
}
4

0 回答 0