2017-01-15 8 views
1

casperjsを使用してangularjsをクリックしたいと思います。しかし、私はこれを達成できません。 Webページは毎回私が実行するので、これをクリックする必要があるので、ダイアログボックスに値を設定します。Casperjsを使用してAngularjsをクリック

これは、私はこれは私がcasperjs

casper.then(function() { 
this.evaluate(function() { 

    $($(document).find('button[ng-if="!activeDialog.yesno"]')).click(); 
}); 

this.wait(3000); 

に使用するもの事前

答えて

1

私はこれを解決次のコードを使用して問題:

casper.waitUntilVisible('.close-j',function(){ 
    this.click(x("//a[@ng-show='!activeDialog.hideCloseButton']"‌​)); 
    this.wait(5000); 
}); 
0

のおかげでは、属性値を使用しないでくださいです

<button class="ng-scope" trans="" ng-click="closeDialog(activeDialog, 'okButton');$event.stopPropagation();" ng-if="!activeDialog.yesno">Tamam</button> 

をクリックしてくださいものですセレクタであなたはそれを選択し、ボタンのユニークなクラスやIDを与えることができ、次のいずれか

<button class="yesno" trans="" ng-click="closeDialog(activeDialog, 'okButton');$event.stopPropagation();" ng-if="!activeDialog.yesno">Tamam</button> 

this.evaluate(function() { 

    $($(document).find('.yesno')).click(); 
}); 

か一つだけのボタンだけで使用がある場合:

this.evaluate(function() { 

    $($(document).find('button[ng-if]')).click(); 
}); 
+0

おかげポップアップウィンドウクラスと他の属性がどのように見えるかです。しかし両者はうまく動かなかった。私は、 "タイムアウトが5000msのタイムアウトを待って、終了"しようとするとこのエラーが発生します。 – Quicksilver

+0

これは別の問題です。角度のロードが完了する前に呼び出している可能性がありますので、タイムアウトを増やすか、読み込みが完了するまで@Quicksilver – Yaser

+0

こんにちは、遅く答えて申し訳ありません。私はこの問題を以下のコードを使って解決しました casper.waitUntilVisible( '。close-j'、function(){ this.click(x // "[@ ng-show = '!activeDialog.hideCloseButton']") ); this.wait(5000); }); – Quicksilver

1

この方法でも解決できます:

this.click('button[ng-if="!activeDialog.yesno"]'); 

私は同様の問題がありました。ウェブサイトにログインするたびにポップアップウィンドウが開き、特定の値のテキストフィールドとクリックボタンを置く必要があります。私はそれを解決する方法だ

<button class="md-raised md-primary md-button md-button md-ink-ripple" aria-label="Okey", type="button"> 

:ご返信用

this.waitUntilVisible('button[aria-label="Okay"]', function() { 
    this.click('button[aria-label="Okay"]'); 
    this.echo("########### Okay button clicked") 
}) 
関連する問題