1

URLを開くNightwatchスクリプトを実行しようとしています。それは入力からgetValueを取得し、次のページでその値を使用します。Nightwatch.jsは入力から値を取得し、次のステップで使用します

次のコードを参照してください:

var conf = require('../../nightwatch.conf.BASIC.js'); 

module.exports = { 
    'nightwatch flow': function (browser) { 
     var first_name; 
     browser 
      .url('http://example:3000') 
      .getValue('input[name="first_name"]', function(result){ 
       first_name = result.value; 
      }) 
      .setValue('input[name="amount"]', 101) 
      .click('input[name=continue]') 
      .clearValue('input[name="first_name"]') 
      .setValue('input[name="first_name"]', first_name) 
      .click('button[name=next]') 
      .end(); 
    } 
}; 

setValue('input[name="first_name"]', first_name) は "未定義"

first_nameのパラメータは、コールバック関数内で更新されている取得します。 私はsetValue関数が更新された値を使用する必要があります。 おかげで、事前

+0

この問題はhttps://github.com/nightwatchjs/nightwatch/issues/1132に関連する可能性があります。 'clearValue'の後に' setValue'を呼び出すと問題が発生するようです。 –

+0

こんにちは、ありがとうございます、私は回避策を見つけました。数分で解決策を投稿します –

答えて

2

に私が回避策を見つけた:

var conf = require('../../nightwatch.conf.BASIC.js'); 

var first_name; 

module.exports = { 
    'nightwatch flow': function (browser) { 
     browser 
      .url('http://example:3000') 
      .getValue('input[name="first_name"]', function(result){ 
       first_name = result.value; 
      }) 
      .setValue('input[name="amount"]', 101) 
      .click('input[name=continue]') 
      .clearValue('input[name="first_name"]') 
      .setValue('input[name="first_name"]', "", function(){ 
       browser.setValue('input[name="first_name"]', first_name) 
      }) 
      .click('button[name=next]') 
      .end(); 
    } 
}; 

ソリューションは、コールバックの内側に再びbrowser.setValueを使用することです。

関連する問題