Horseman.js - >处理window.confirm

时间:2017-05-15 16:25:52

标签: node.js phantomjs node-horseman

我需要帮助解决我遇到的问题,并确信node-horseman可以处理它。

我试图接受一个" window.confirm"警惕并尝试了许多事情但未成功。基本上,点击一个按钮后,我希望能够接受"使用骑士的确认信息。

通过文档,我发现了这个:

  

.at(事件,回调)   使用回调响应页面事件。

.at('confirm', function(msg) {
    return msg === 'Like this?' ? true : false;
})

然而,当我把这样的.at放在任何 .open 之前

horseman
    .at('confirm', function(msg) {
        return msg === 'Do you accept?' ? true : false;
    })

我收到错误说:

TypeError: horseman.at is not a function

我正在寻找:使用node-horseman接受 window.confirm 的方法。

任何帮助都将非常感谢!

1 个答案:

答案 0 :(得分:0)

阅读this answer帮助我解决了这个问题。

我没有使用 .at ,而是执行了以下操作:

horseman
    .open(myUrl)
    .evaluate(function(){
        var realConfirm=window.confirm;  
        // override the window.confirm function just once
        window.confirm=function(msg){
            window.confirm = realConfirm;
            if (msg=="message I am Expecting"){  
                return true;
            }else{
                return false;
            }
        };
    })
    .click('#mybutton')

这很有效!

基本上,我会在下次调用window.confirm函数时覆盖它,并在执行期间将其恢复为之前的值。

我希望这也有助于其他人。