2016-07-05 5 views
0

私はこれが簡単な答えで愚かな質問であると思っています。
(私は喜びのない日半のためにGoogleで検索しました)casperjs:グローバル変数を使用するjqueryを取得できません

私は、問題の核心に到達するためにテストコードをダウン易しく書き直さましたプルダウンメニュー
を変更casperjsスクリプトを書いています
次のように 私のテストHTMLは次のようになりますjqueryのを使用して

<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    </head> 
    <body style="background-color:powderblue;"> 
    <form> 
    <select id="down"> 
     <option value="volvo">Volvo</option> 
     <option value="saab">Saab</option> 
     <option value="vw">VW</option> 
     <option value="audi">Audi</option> 
    </select> 
    </form> 
    </body> 
    </html> 

作業Casperjsスクリプト:

casper.start("http://192.168.0.14/test.html", function(){ 
    //change the pulldown selection 
    casper.then(function() { 
     this.evaluate(function(){ 
      $('#down').val('vw').change(); 
     }); 
    }); 

    casper.then(function(){ 
      this.capture("screen.png"); 
    }); 
}); 
casper.run(); 

今、私は共同parameteriseしたいです文字列の代わりに変数セレクタを使用します。しかし、このコードは機能しません:

var x1='#down'; 
var y1='vw'; 

casper.start("http://192.168.0.14/test.html", function(){ 
    //change the pulldown selection 
    casper.then(function() { 
     this.evaluate(function(){ 
      $(x1).val(y1).change(); 
     }); 
    }); 

    casper.then(function(){ 
      this.capture("screen.png"); 
    }); 
}); 
casper.run(); 

これは難しくありませんが、おそらくそうではありませんが、「ウィンドウ」のすべての組み合わせです。または角括弧の表記法が私に失敗しました。
jqueryはniceを再生することを拒否しています。

私はこれが私の深さの外に私を置くとは思わなかったが、それは明らかに

答えて

0

はこれを試してみてくださいました、助けてください: -

this.evaluate(function(x1, y1){ 
     $(x1).val(y1).change(); 
    }, x1, y1); 

内部評価何がサンドボックス化され、あなたがする必要があります。あなたが使用したい任意のパラメータでパスしてください

+0

それです!あなたはあなたが話していることを知っています。どうもありがとうございました – Norsak

関連する問題