2016-11-10 46 views
0

我正在嘗試使用PhantomJS獲得onPrompt回調。PhantomJS onPrompt回調

僅用於測試,我有一個基本的角度應用程序,提示用戶初始化並在頁面上顯示該數據。

當我手動輸入提示信息時,它工作正常,但在使用PhantomJS onPrompt回調時不起作用。

這裏的角應用:

angular 
.module('app') 
.controller('test', TestController) 


function TestController() { 
    var vm = this; 
    vm.$onInit = onInit; 
    vm.testData = ''; 

    function onInit() { 
    vm.testData = prompt('Name?'); 
    } 
} 

這是我與PhantomJS

var page = require('webpage').create(); 
    page.open('http://localhost:3000', function() { 
    console.log('test') 

    page.onPrompt = function(msg, defaultVal) { 
    console.log("MESSAGE", msg) 
    return "Dog"; 
    }; 
    page.render('test.pdf'); 
    phantom.exit(); 
    }); 

我希望得到的console.log,上面寫着「消息」,並從文本運行的代碼提示以及顯示「狗」的頁面截圖。

我得到一個空白頁面的截圖並沒有控制檯日誌。

我最好喜歡用這個回調和節點webshot作爲選項。 webshot phantom callbacks

感謝您的幫助。

回答

0

有一個上下文,其中與頁面的實際交互進行交互 - 通常在page.evaluate(..)函數內。該onPrompt回調將這一背景下內執行和你預期不會打印到控制檯 - 我想你需要首先設置onConsoleMessage回調編組輸出回控制檯:

page.onConsoleMessage = function (msg) { 
    console.log(msg); 
}; 

然後它應按預期打印到控制檯:)