2016-03-28 6 views
0

私のcasperjsのクリックはほとんどのWebサイトでうまくいきますが、私がredditで何かをクリックしようとすると、クリックしません。casperjsはreddit.comをクリックできません

casper.start(); 
casper.then(function(){ 
    this.open("http://reddit.com"); 
}); 

casper.then(function(){ 
     this.sendKeys("[name='user']", 'someusername'); 
     this.sendKeys("[name='passwd']", 'somepassword'); 
     this.click("[id='rem-login-main']"); 
     this.click(x('//*[@id="login_login-main"]/div[3]/button')) 
}); 
casper.run(); 

sendkeys機能はうまくいきますが、両方のクリック機能は機能しません。

+0

どのようにあなたはそれが働いていないことを知っていますを探しますか?待機やスクリーンショットの取得などの検証コードは表示されません。 –

+0

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

+0

こんにちは、私はコードを読みやすくしたいので、申し訳ありません。ここで問題は、私はthis.clickを実行すると、それはクリックしませんが、私はkeypressイベント "スペース"を追加すると、そのボタンをクリックするので、本当に意味は何ですか? –

答えて

0

は以下のコードとその作業

casper.test.begin("Opening Reddit page", 1, function suite(test) { 

    var x = require('casper').selectXPath;//required if we detect an element using xpath 
    casper.start(); 

    casper.viewport(1024, 768).then(function() { 
     this.open("http://reddit.com"); 
     this.wait(5000) 
    }); 

    casper.then(function() { 
     this.sendKeys("[name='user']", 'username'); 
     this.sendKeys("[name='passwd']", 'password'); 
     this.click("[id='rem-login-main']"); 
     this.click(x(".//*[@id='login_login-main']/div[3]/button")); 
    }); 

    casper.wait(5000) 

    casper.then(function() { 
     this.test.assertExists(x(".//*[@id='header-img']"), "Confirmed that page has successfully loaded"); 
    }); 

    casper.run(function() { 
     test.done(); 
    }); 
}); 
+0

を助けました。あなたのコードを試してみました。そしてcasper.runの前にスクリーンショットを追加しました。ログインボタンをクリックしていません。正常にクリックされた場合は、間違ったパスワードが表示されます。あなたは "casper.capture( 'login_button.png');"あなたのcasperjsが間違ったパスワードを表示するかどうかを確認しますか? –

+0

あなたによると、シナリオは間違ったパスワードを入力していて、ポップアップを期待しています!右?。あなたの質問を変えて、完全な画像を得ることができます –

関連する問題