phantomjs (Windows ではバージョン 1.9.1) を使用して、いくつかの QUnit テスト URL にアクセスしようとしています。企業サイトのプロキシの背後にいますが、アクセスしようとしている URL はローカルの開発ワークステーションから提供されています。さらに、他の 2 つのブラウザー (Hv3 と Dooble) を使用して同じ URL にアクセスしようとしましたが、必要なプロキシ設定、および QUnit JavaScript を実行できない場合でも、HTML 応答を取得します。
そのため、生の HTML を取得するために javascriptEnabled 設定 (さらにいくつかの設定、以下のコードを参照) を false に調整してみましたが、役に立ちませんでした。page.open への呼び出しを try/catch でラップしましたが、明らかにこれは例外によるものではありません。むしろ、最後の phantom.exit() ステートメントが実行される直前の console.log ステートメントです。
さらに、page.onResourceRequested、page.onError、page.onResourceReceived からのロギングを含むhttps://github.com/ariya/phantomjs/wiki/Network-Monitoringの推奨に従っており、onResourceReceived のコールバックのみが実行されます。そして、 --proxy-type=none コマンドライン引数を指定していますが、すべて役に立ちません。
以下のコードと出力、よろしくお願いします。私は途方に暮れています。多分それはphantomjsの問題ですか?ただし、報告する前にすべてを除外したいだけです。
コード:
var page = require('webpage').create();
page.onResourceRequested = function (request) {
console.log('Request ' + JSON.stringify(request, undefined, 4));
};
page.onResourceReceived = function (response) {
console.log('Receive ' + JSON.stringify(response, undefined, 4));
};
page.onError = function (msg, trace) {
console.log(msg);
trace.forEach(function(item) {
console.log(' ', item.file, ':', item.line);
})
}
page.settings.webSecurityEnabled = false;
page.settings.localToRemoteUrlAccessEnabled = true;
//page.settings.javascriptEnabled = false;
for (var setting in page.settings) {
console.log(setting + ": " + page.settings[setting]);
}
try {
page.open('http://local.example.com:9001/test/workflow', function() {
console.log('page opened');
});
}
catch(xcep) {
console.log(xcep);
}
console.log('before exit');
phantom.exit();
出力:
XSSAuditingEnabled: false
javascriptCanCloseWindows: true
javascriptCanOpenWindows: true
javascriptEnabled: true
loadImages: true
localToRemoteUrlAccessEnabled: true
userAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.1 Safari/534.34
webSecurityEnabled: false
Request {
"headers": [
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.1 Safari/534.34"
},
{
"name": "Accept",
"value": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
}
],
"id": 1,
"method": "GET",
"time": "2013-07-12T09:49:58.262Z",
"url": "http://local.example.com:9001/test/workflow"
}
before exit