2017-09-08 4 views
0

私は分度器と角度の新しいものです。分度器と角度jを使ってWebアプリケーションのテストを自動化したいWebアプリケーションにはログインページがあり、続いてドロップダウンと入力フィールドを含むメインページがあります。アプリケーションにログインするためのテストを行うための分度器コードを書きました。しかし、それは私がドロップダウンの質問にドロップダウン選択のための関数を配置する必要があります私の質問に書いた機能を実行しません。私は分度器を通じてJSを実行すると、私が持っているフローが...角度の関数の流れJS

var username = element(by.model('login.username')); 
    var password = element(by.model('login.password')); 
    var goButton = element(by.buttonText("Login")); 
    function login_page(a, b) {  
     username.sendKeys(a); 
     password.sendKeys(b); 
     goButton.click(); 
    } 
    beforeEach(function() { 
     browser.get('my_url'); 
    }) 
    function seldrop(element, optionNum) { 
     console.log('in seldrop'); 
     var selectDropdownbyNum = function (element, optionNum) { 
     if (optionNum){ 
      var options = element.querySelectorAll('.dropdown-toggle') 
      .then(function(options){ 
      options[optionNum].click(); 
      console.log(options); 
     }); 
    } 
    } 
    } 

    it('put in values', function() { 
    login_pg('usrname', 'passwd'); 
    const selector = seldrop(element,'3'); 
    colsole.log(selector); 
    }); 

あり、それは成功を示していますが、それだけでログインを成功します。 セルドロップ関数が呼び出されていないようです。それは正しい順序でありますか?

答えて

0

グローバル変数またはブロック内に定義された要素変数[seldrop(element、 '3')]は表示されません。したがって、未定義の値を渡している可能性があります。

関数を定義した順序に問題はありません(javascriptの実行コンテキストに関する私の知識によると)。しかし、標準として、前にすべての関数をまとめておくことができればうれしいです。各ブロック

+0

var mySelect = $( '3');を追加しました。グローバルセクションに移動し、 "it"セクションでこの変数を使用しましたが、今はelement.querySelectorAllが関数ではありません エラー –

+0

ここでコードをシステムの最新コードで更新してください –