2015-06-21 102 views
0

我正在使用此代碼登錄窗體。我得到錯誤。casperjs登錄表單錯誤

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

var url = "www.example.com"; 


casper.start(url,function(){ 
    this.echo(this.getTitle()); 
}); 

casper.waitForResource(url,function() { 
    this.fillSelectors("form[method='post']", { 
     'input[name="userName"]' : 'usr1', 
     'input[name="password"]': 'pswed1' 
    }, true); 
}); 

casper.run(); 

http://prntscr.com/7jkia1

我幾乎複製的例子,我在棧上找到,但我仍然得到錯誤...怎樣做才能解決這個問題?

+0

它告訴你它找不到形式... – mfreitas

+0

我得到了,但我試過一遍又一遍......沒有理由...... – macroscripts

+0

你確定你是正確的網頁上?你有截圖檢查('casper.capture()')?請註冊到'resource.error','page.error','remote.message'和'casper.page.onResourceTimeout'事件([Example](https://gist.github.com/artjomb/4cf43d16ce50d8674fdf)) 。也許有錯誤。 –

回答

0

似乎casper不能爲form [method ='post'](使用fillSelectors)做一個選擇器,它也不適合我。但是,如果你指定任何其他屬性,如名稱,ID,類,enctype,動作等,它的作品。

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

var url = "https://careershub.bbc.co.uk/members/"; 

casper.start(url,function(){ 
    this.echo(this.getTitle()); 
}); 

casper.waitForResource(url,function() { 
    this.fillSelectors('form#registration-form', { 
     'input[name="name_first"]' : 'firstname', 
     'input[name="name_last"]': 'lastname' 
    }, true); 

    this.captureSelector('test.png', 'form'); 
}); 

casper.run(); 
+0

我試過這段代碼,並得到了錯誤。 http://prntscr.com/7jl8x5 當我去了802線在casper.js文件我得到了這個。 http://prntscr.com/7jl9bb – macroscripts

+0

@macroscripts不知道你爲什麼得到這個錯誤,在這裏完美地工作(http://i.imgur.com/gctDw1Q.png,這兩個輸入得到正確填寫)。也許嘗試重新安裝casperjs和phantomjs。 – mfreitas

+1

@macroscripts我注意到你的控制檯甚至沒有打印出頁面標題。你在代理或其他東西后面嗎?似乎你甚至無法正確連接到網站。 – mfreitas