2016-03-31 12 views
1

CasperJSボタンがクリックされたが、そこ

var casper = require('casper').create({ 
 
    verbose: true, 
 
    logLevel: 'error', 
 
    pageSettings: { 
 
    userAgent: 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36' 
 
    } 
 
}); 
 
var x = require("casper").selectXPath; 
 

 
casper.start("https://kit.kijiji.ca/Index.aspx"); 
 

 
casper.then(function() { 
 
    this.sendKeys('input[name="login_username"]', '[email protected]'); 
 
    this.sendKeys('input[name="login_password"]', 'password'); 
 
}); 
 

 
casper.thenClick('button', function() { 
 
    this.echo("Button clicked."); 
 
}); 
 

 
casper.wait(500, function() { 
 
    casper.click(x("//input[@value='Login/Ouvrir une session']")); 
 
}); 
 

 
casper.wait(1000, function() { 
 
    this.echo(this.getTitle()); 
 
    this.capture('example.png'); 
 
    casper.exit(); 
 
}); 
 

 
casper.run();

こんにちはリダイレクトdoesntの、私はので、私はここに投稿することを決め、すべてのWebを中心に検索し、私の問題への解決策を見つけることができませんでした。

私はこのウェブサイトに自動的にログインしようとしていますが、入力フィールドを入力してボタンをクリックすると、資格情報が正しいときは何も起こりません。

偽の資格情報を入力すると、「無効なユーザー名/パスワード」が表示されているので、ボタンがクリックされていることがcasperjsのキャプチャからわかります。

ご協力いただければ幸いです。前もって感謝します。

+0

どのPhantomJSバージョンを使用しますか? 'resource.error'、' page.error'、 'remote.message'、' casper.page.onResourceTimeout'イベントに登録してください([Example](https://gist.github.com/artjomb/4cf43d16ce50d8674fdf#file) -2_caspererrors-js))。多分エラーがあるかもしれません。 –

+0

@ ArtjomB.私は現在PhantomJS(2.1.1)の最新バージョンを使用していますが、私はこれらのイベントからエラーは発生しませんでした。また、正しい資格情報でキャプチャ機能は、「スクリーンショットをexample.pngに保存できませんでした。許可を確認してください...」というエラーを返します。 ResourceError:{ "errorCode" :5、 "errorString": "操作がキャンセルされました"、 "id":78、 "status":null、 "statusText":null、 "url": "https://kit.kijiji.ca/ Index.aspx " } –

+0

私はあなたがPhantomJS 2.1.1を使用しているとは思わない。 CasperJSには、NPMを使用してインストールした場合、古いバージョンのPhantomJSが含まれています。 'casperjs --ignore-ssl-errors = true --ssl-protocol = any script.js' –

答えて

0

あなたのログイン部分は、事後対応のあるフォームの下にあります。 Uはログインボタンをクリックする代わりにフォームを送信しようとすることができます。私もこの問題に直面し、この方法で解決策を得ました:

this.fill('form#formname', { 
     login_username: '[email protected]', 
     login_password: 'password', 
    }, false); 

    this.thenEvaluate(function() { 
     document.querySelector('form#formname').submit(); 
    }); 

あなたは問題を解決できますか?フォーム名を正しく入力してください。

関連する問題