[英]Store Several Elements of a Page to a JSON Object
我需要將頁面的多個文本元素存儲到JSON對象,但是由於異步性,我無法在量角器中執行此操作。
這是我的代碼的一個示例,它位於element.all()
循環中:
var json = {};
e[i].element(by.css(".nome_projeto")).getText().then(function(text){
json.nome = text;
});
e[i].element(by.css(".nome_cliente")).getText().then(function(text){
json.cliente = text;
});
e[i].element(by.css('.data_fim')).getText().then(function(text){
json.data = text;
});
console.log(json);
list.push(json);
但是,當我登錄時,我的JSON對象是未定義的,並且只能在then
訪問它。
您可以使用protractor.promise.all()
一次解決多個承諾:
protractor.promise.all([
e[i].element(by.css(".nome_projeto")).getText(),
e[i].element(by.css(".nome_cliente")).getText(),
e[i].element(by.css('.data_fim')).getText()
]).then(function (texts) {
var obj = {};
obj.nome = texts[0];
obj.cliente = texts[1];
obj.data = texts[2];
console.log(obj);
});
我看到意大利語名稱:D我們可以說意大利語:D
順便說一句,我建議您使用以下代碼對其進行更改,以便管理所有承諾:
var json = {};
var promises = [
e[i].element(by.css(".nome_projeto")).getText(),
e[i].element(by.css(".nome_cliente")).getText(),
e[i].element(by.css('.data_fim')).getText()
];
protractor.promise.all(promises).then(function(data) {
json.nome = data[0];
json.cliente = data[1];
json.data = data[2];
list.push(json);
});
它應該工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.