我是量角器的新手,我希望能在如何在量角器测试中使用的executeAsyncScript函数中传递变量方面提供帮助。
我正在测试一个应用程序,我需要一个包含标签翻译(法语和英语)的JSON文件,起初我可以从第一个json文件中正确地恢复用户的语言(让我们调用getUser.json )。其次依赖于用户语言我需要动态传递url以获取标签json文件(让我们调用lang_fr.json
和lang_en.json):
based on the code,第三个例子我可以访问任何json文件。
browser.executeAsyncScript(function() {
var callback = arguments[arguments.length - 1];
var xhr = new XMLHttpRequest();
var url='path_to/getUser';
xhr.open("GET", url , true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
callback(xhr.responseText);
}
};
xhr.send('');
}).then(function(str) {
browser.params.lang=JSON.parse(str)['userLanguage'];
if(JSON.parse(str)['userLanguage']==='fr')
browser.params.url='path_to/lang_en.json';
else
browser.params.url='path_to/lang_fr.json';
UserLanguage.UserLanguage(); /// excuting the fct that call the second jsonfile
browser.params.url
executeAsyncScript来获取json文件标签所以我在另一个导出文件中执行此操作:
var url = browser.params.url;
browser.logger.info(browser.params.url); // The url depending the user language is correctly displayed
browser.executeAsyncScript(function() {
var callback = arguments[arguments.length - 1];
var xhr = new XMLHttpRequest();
xhr.open('GET', url /*here to pass the url depending the user language*/, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
callback(xhr.responseText);
}
}
xhr.send()
}, url/*passed on second argument*/).then(function(jsonlabel) {
/// rest of the code to resolve the labels
我知道网址没有定义
我检查了以下示例:
但在每个例子中我都有错误。
那么请你提供你的建议如何正确传递剧本中的可变网址?请注意,当我将绝对文件路径设置为有效时:
xhr.open('GET', 'path_to/lang_en.json', true);
但我需要动态传递它。希望它清楚,我在这里了解更多细节。
答案 0 :(得分:0)
所以我尝试将变量url放在typedef Eigen::SparseMatrix<double, RowMajor, long int> SMatrixXd;
上并且它有效!
function(){