2015-07-03 20 views
2

我有一個測試,我想通過命令行傳遞語言鍵,並讓瀏覽器在chromeOption參數中使用該語言鍵。我可以用參數改變量角器的配置能力嗎?

我該如何使用en-us的默認值,但是要通過我想要的任何語言並根據傳入的內容將其從默認值更改爲默認值?

我在我的conf文件中有這樣的:

exports.config = { 
... 
    capabilities: { 
     browserName: 'chrome', 
     chromeOptions: { 
      args: [ 
       'lang=en-419', 
      ] 
     } 
    }, 
    params: {  
     language: { 
      lang: 'en-US' 
     } 
    }, 
... 
}; 

我想運行此命令,並讓瀏覽器切換到ES-419這個測試的運行

protractor conf.js --params.language.lang=es-419 

根據傳遞的語言,我需要添加什麼來修改功能,如果沒有任何內容被傳遞,那麼en-us是默認值?

我已經嘗試了一些東西,這些東西會崩潰,像'對象沒有方法功能'或'chromeOptions undefined'。

browser.capabilities.chromeOptions.args.update(browser.params.login.lang); 
browser.getCapabilities().then(function(){ 
      chromeOptions.args = browser.params.language.lang; 
    }); 
browser.manage().capabilities.chromeOptions.args(browser.params.language.lang); 
capabilities: { 
    chromeOptions: { 
     args: { 'lang=' + this.params.language.lang 
     } 
    } 
} 

任何想法?

回答

1

我能夠通過經由節點過程對象訪問命令行以改變語言功能:當配置被根據該SO問題解析

function getLangParam(defaultValue) { 
    // Each arg will have the entire string value between 
    // whitespace, dashes and all. 
    var PARAM_KEY = '--params.language.lang='; 

    var result = defaultValue; 
    process.argv.forEach(function (arg) { 
    // Check if the arg starts with the PARAM_KEY 
    // and update the result if we find it 
    if (arg.indexOf(PARAM_KEY) === 0) { 
     result = arg.substring(PARAM_KEY.length); 
    } 
    }); 
} 

var lang = getLangParam('en-US'); 
exports.config = { 
    capabilities: { 
    browserName: 'chrome', 
    chromeOptions: { 
     args:['lang=' + lang] 
    } 
    } 

    // The rest of your config... 

}; 

瀏覽器對象是不可用:Can I access parameters in my protractor configuration file?

+0

您好!謝謝你的答案。 你可以擴展你如何運行?只要量角器conf.js --params.langauge.lang ='es-419'?我甚至會傳遞一個參數,或者只是將某些東西硬編碼到文件中?無論我傳遞這個參數,還是更改getLangParam行,我似乎都無法改變語言。看起來args部分甚至不知道lang是什麼。 如果我這樣做: browser.getProcessedConfig()。then(function(configData){ console.log(configData.capabilities); }); 我得到lang = undefined。 對不起,如果我不理解,我是新來的。 – user2020347

+0

是的,你可以運行量角器conf.js --params.language.lang ='es-419'。對不起,我不熟悉Chrome自帶的lang選項。我認爲你已經能夠通過對你顯示的值進行硬編碼來改變語言,並且只需要知道如何在命令行中傳遞它們即可。 – kennbrodhagen

相關問題