簡體   English   中英

將頁面的多個元素存儲到JSON對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM