2014-03-01 71 views
1

正在運行的Casper 1.1.0-beta3和Phantom 1.9.7的最新版本。然而,即使是最簡單的Casper腳本:CasperJS未識別的PhantomJS網頁模塊

var casper = require('casper').create(); 

casper.start('http://casperjs.org/', function() { 
    this.echo('foo'); 
}); 

casper.run(); 

失敗,出現錯誤類型

TypeError: 'undefined' is not a function (evaluating 'require('webpage').create()') 
    /usr/local/src/casperjs/modules/casper.js:2446 in createPage 
    /usr/local/src/casperjs/modules/casper.js:1703 in start 
    /var/sites/phantom/simple.js:5 

被要求是PhantomJS模塊的「網頁」,而當我運行幻影腳本工作正常。 require方法似乎也可以正常工作(上面的每行第1行)來加載它自己,所以似乎PhantomJS只能被有選擇地識別。

Phantom安裝在我的$ PATH中的/ usr/local/bin中。卡斯帕符號鏈接到相同的位置。 O/S是Ubuntu 13.10。

任何有關如何說服卡斯帕與幻影(或反之亦然)打好的建議將不勝感激。

回答

1

問題原來是我在我試圖執行Casper腳本的目錄中有一個名爲webpage.js的Phantom腳本。我懷疑卡斯帕的補丁版Phantom的裝載機誤將其用於Phantom網頁模塊。

名稱的同時發生使得這個事件不太可能發生在其他人身上。但是,如果是這樣,只需重命名違規腳本就可以解決問題,並且我建議將casperjs/bin/casperjs文件的native_args列表中的所有條目視爲保留字。

4

只是一個筆記,如果有人着陸這個問題 - 我有一個本地安裝npm'網頁'模塊在我的package.json和node-modules目錄中的同樣的錯誤。清除這些允許casperjs找到全球安裝的幻像網頁模塊,併爲我解決了這個問題。

+0

這對我也有幫助..謝謝。 – keithics

+0

非常感謝幫助我! – kevpoccs