2016-06-30 3 views
2

Я выполняю проверку транспортира, где данные JSON должны быть получены, чтобы выполнить сравнение. Часть JSONArray показано ниже,Получение данных JSON в транспортирнике

"ATA_Chapter": [ 
     { 
      "@id": "01", 
      "ATA_Chapter_Number": "Chapter 01", 
      "ATA_Chapter_Title": "General Airplane Description" 
     }, 
     { 
      "@id": "02", 
      "ATA_Chapter_Number": "Chapter 02", 
      "ATA_Chapter_Title": "Communications" 
     }] 

Я попытался с помощью ниже код,

console.log(json.Root.Catalog.ATA_Chapter[index].ATA_Chapter_Title); 

В консоли, она печатает значения, как,

General Airplane Description 
Communications 

но транспортир дает ошибка как:

Message: 
    Failed: Cannot read property 'ATA_Chapter_Title' of undefined 

Pls найти часть спецификации кода, где выше функциональность написана

var number;var title ; console.log(json.Root.Catalog.ATA_Chapter[index].ATA_Chapter_Title); number = json.Root.Catalog.ATA_Chapter[index].ATA_Chapter_Number; title = json.Root.Catalog.ATA_Chapter[index].ATA_Chapter_Title; var chapterName = number+" "+title; element.all(by.repeater('chapter in chapters')).filter(function (ele,index) { return ele.getText().then(function(text){ console.log('text'+text); return text === chapterName; }); }).click();

+1

можете ли вы разместить свой spec-файл? –

+1

можете ли вы отформатировать код, который не сможет ничего сделать? –

+0

, пожалуйста, обновите вопрос спецификационным кодом. Не могу прочитать это в комментариях. – Gunderson

ответ

1

вместо того, чтобы получить доступ к JSON таким образом, я хотел бы предложить рассматривать его как модуль и экспортировать его следующим образом:

module.exports= { 
    "ATA_Chapter": [ 
     { 
      "@id": "01", 
      "ATA_Chapter_Number": "Chapter 01", 
      "ATA_Chapter_Title": "General Airplane Description" 
     }, 
     { 
      "@id": "02", 
      "ATA_Chapter_Number": "Chapter 02", 
      "ATA_Chapter_Title": "Communications" 
    }] 
} 

Затем включить его в свой файл спецификации следующим образом:

var ataData = require('path/to/your/json/file'); 

var number;var title 

console.log(ataData.ATA_Chapter[index].ATA_Chapter_Title); 

number = ataData.ATA_Chapter[index].ATA_Chapter_Number; 
title = ataData.ATA_Chapter[index].ATA_Chapter_Title; 
var chapterName = number+" "+title; 
element.all(by.repeater('chapter in chapters')).filter(function (ele,index) { 
    return ele.getText().then(function(text){ 
     console.log('text'+text); 
     return text === chapterName; 
    }); 
}).click(); 

Это следует Угловое/транспортир шаблонов проектирования немного ставку тер и должен помогать с неопределенными ошибками. Дайте мне знать, если это работает/помогает!

Смежные вопросы