10
我的最終目標是打開一個javascript嵌入的本地html文件,創建一個帶有多邊形的地圖,並使用PhantomJS截取它。我寫了一個簡單的JS文件來做到這一點:PhantomJS未能加載谷歌地圖
var page = require('webpage').create();
page.open('https://www.google.com/maps', function(status) {
console.log('State: ' + status);
if(status === 'success') {
page.render('example.pdf', {format: 'pdf', quality: '100'});
}
phantom.exit();
});
這將返回錯誤:
ReferenceError: Can't find variable: google
我已經試過這對本地的HTML文件,並使用谷歌地圖和我保持其他網站得到相同的錯誤。我已成功地在沒有谷歌地圖的情況下拍攝其他網站的屏幕截圖。搜索互聯網似乎並不像人們有這樣的問題,並已成功地採取與谷歌地圖的頁面截圖...所以我想知道什麼是錯的。
另一個注意事項:我在我的rails項目中安裝了PhantomJS作爲gem,並使用這個gem通過rails控制檯運行javascript文件。我已經嘗試過使用PhantomJS(v 2.0.0)的標準安裝,但它仍然無法正常工作。
嘗試用'--ignore-SSL-錯誤= TRUE;命令行選項運行。 –
我可以用'phantomjs script.js'運行你的示例代碼。但需要考慮的一件事情是:谷歌地圖切片(或者這些天的矢量數據)是由它們自己異步加載的,您可能需要在內部的'page.open'塊周圍等待幾秒鐘的時間添加'window.setTimeout'所以頁面在完全加載時呈現爲PDF格式。別的,你的PDF將會是空白/灰色的。 – chrki
@ArtjomB解決方案對我不起作用:( – JustGage