2017-06-27 16 views
0

目的:文字列を変数として評価して、conf.jsファイルの電子メールを繰り返し処理します。文字列を介して変数を参照する

私はeval(string name),window[string name]、およびthis[string name]を使用しようとしました。

は、私のようなエラーが出る:

予想外数。

各キーは文字列の数でなければなりません。定義されていない。

など。変数名のように文字列を実行させる適切な方法は何ですか?問題は、forループの2行目から最後の行までです。あなたの洞察に感謝します!私conf.jsファイルで

、私は次のように保存された電子メールアドレスがあります。

// conf.js 
exports.config = { 
    framework: 'jasmine', 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    params: { 
    login: { 
     username: '*********', 
     password: '*********.' 
    }, 
    website: { 
     url: '*********', 
    }, 
    testEmails: { 
     // First address 
     1: '*****@gmail.com', 

     // Second address 
     2: '*****@gmail.com', 
    } 
    } 
} 

spec.js

describe('Testing |', function() { 

    var initialLink = ('https://').concat(browser.params.website.url); 

    function loadPage(a) { 
    browser.get(a); 
    } 

    function login(a, b) { 
    element(by.model('login.userName')).clear().sendKeys(a); 
    element(by.model('login.password')).clear().sendKeys(b); 
    element(by.id('btnLogin')).click(); 
    } 

    function send(a, b){ 
    element(by.id('btnCompose')).click(); 
    element(by.id('toCtrl_new')).sendKeys(a); 
    element(by.id('subjectCtrl')).sendKeys(b); 

    browser.driver.sleep(2000); 
    element(by.id('btnCancel')).click(); 
    browser.waitForAngular(); 
    } 

    it('should send emails', function() { 
    loadPage(initialLink); 
    login(browser.params.login.username, browser.params.login.password); 
    element.all(by.repeater('module in ui.forUser')).get(3).click(); 

    for(var i = 1; i < 38; i++){ 
     var prefix = "browser.params.testEmails."; 
     var complete = prefix.concat(i); 
     var toWhom = eval(complete); 
     send(toWhom, 'Testing'); 
    } 

    }); 

}); 

答えて

2

をここにあなたが何ができるかです:

for (key in browser.params.testEmails) { 
    var toWhom = browser.params.testEmails[key]; 
    send(toWhom, 'Testing'); 
} 
+0

うわー、ちょうど私が必要としていたもの、ありがとうダンiel! 'testEmails [key]'は 'browser.params.testEmails [key]'でなければなりません。 – bdf7kt

+0

問題ありません。そのミスを修正した – DanielR

関連する問題