2013-11-22 72 views
2

我使用Casperjs/Phantomjs,在論壇網站上登錄後製作截圖。我寫的代碼在cmd中給出了這個結果。Casperjs/Phantomjs screencapture登錄後

C:\xampp\htdocs\testing>casperjs screencappie.js 
Var Declared 
[info] [phantom] Starting... 
Form FIlled 
Clicked 
Waited 

我運行代碼:

casperjs C:\path\path\..\test.js 

我設置的所有環境變量。它實際上通過了所有的代碼,但它似乎並沒有做什麼應該做的:製作一個屏幕截圖。

的代碼我使用:

var casper = require('casper').create({ 
    verbose: true, 
    logLevel: 'debug' 
}); 
var x  = require('casper').selectXPath; 
var url  = 'http://forum.justforfun-gaming.com/newreply.php?tid=11178'; 
console.log('Var Declared'); 
casper.start(url, function() { 
    this.fill(x('//*[@id="content"]/table[2]/tbody/tr[2]/td/form'), { 
     'username': 'USERNAME', 
     'password': 'PASSWORD' 
    }, true); 
}); 
    console.log('Form FIlled'); 
casper.thenClick(x('//*[@id="content"]/table[2]/tbody/tr[2]/td/form/table/tbody/tr[4]/td/input')); 
    console.log('Clicked'); 


casper.wait(5000, function() { 
    this.capture('test.png', { 
     top: 0, 
     left: 0, 
     width: 900, 
     height: 900 
    }); 
}); 
console.log('Reached end of code'); 
+0

如果您不調用'casper.run();'某處,Casper套件將不會運行。 – Martin

+0

@Martin這聽起來像一個答案(*答案),而不是一個評論:-) –

+0

我想你是對的。 – Martin

回答

1

調用casper.run();運行整套步驟,並可選擇在完成所有步驟後執行回調。顯然,爲了運行Casper導航套件,調用此方法是強制性的。 舉例和更多信息請閱讀文檔http://docs.casperjs.org/en/latest/index.html

0

你可以試試這個?

casper.capture('yourImage.png'); 

而不是嘗試調整大小。在嘗試拍攝照片之前,確保您實際上已經進入了屏幕截圖的一部分。

我遇到了這種情況,它只是簡單地失敗,這是一個真正的頭痛,有時處理。