0
我有一個簡單的網絡應用程序(發音指南),它顯示了一個鏈接的術語列表。當用戶點擊一個時,它會觸發音頻播放器播放發音。使用PhantomJS點擊觸發的日誌GET請求
因此,有一個點擊事件會觸發GET請求來獲取播放器加載並播放的音頻文件。
我想記錄所有的GET請求,看看是否都成功。我正在嘗試使用PhantomJS來做到這一點。我拼湊在一起:
var page = require('webpage').create(),
system = require('system'),
address = "http://d-college.cengage.com/demos/pronuncation_guide/index.html"
page.onResourceRequested = function (req) {
console.log('requested: ' + JSON.stringify(req, undefined, 4));
};
page.onResourceReceived = function (res) {
console.log('received: ' + JSON.stringify(res, undefined, 4));
};
page.open(address, function (status) {
if (status !== 'success') {
console.log('FAIL to load the address');
}
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
page.evaluate(function() {
$("a").click();
});
phantom.exit()
});
});
這確實成功記錄頁面加載的所有資產,以及包含的jquery。但後來我得到:
Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file://clicklog.js. Domains, protocols and ports must match.
我覺得這是不是真的本身錯誤(請參見:CasperJS and 'Unsafe JavaScript attempt to access frame with URL' error)我也不認爲它導致程序BARF。
但是,點擊是否發生?爲什麼不記錄最終的GET請求?