Есть ли способ получить данные JSON через переменную в Cypress? ⇐ Javascript
-
Гость
Есть ли способ получить данные JSON через переменную в Cypress?
В JS, если я хочу получить данные в формате JSON с помощью моей собственной переменной, я могу использовать obj[id], как показано ниже.
// В JS константный идентификатор = 'имя' константный объект = { имя: 'Джон', возраст: 5 } console.log(obj['имя']); --> ВЫВОД: 'Джон' console.log(obj[id]); --> ВЫВОД: 'Джон' Я пробовал этот способ в Cypress при использовании фикстур, но он не работает должным образом. Но если я создам новую переменную и присвою ей определенное значение, Cypress будет работать.
**/fixtures/testData.json** { "имя": "Джон", "возраст": "5" } **/integration/testData.spec.cy.js** описать('Тестовые данные, полученные из файла JSON', () => { пусть testData; пусть идентификатор = '' beforeEach(() => { cy.fixture('testData.json').then(data => { тестДанные = данные }) }) it('Проверить, что пользователь перенаправлен на соответствующую страницу сведений', () => { CaseList.getTableBodyRecords() .then($case => { константные элементы = $case.toArray() вернуть Cypress._.sample(предметы) }) .then($selectedCase => { const idHeading = 'ID' const idElement = $selectedCase.find('td:first-child').text() id = idElement.slice(idHeading.length) }) .клик() it('Проверить тестовые данные', () => { const tempId = 'имя' cy.log(testData.name) --> ВЫВОД: 'Джон' // Предположим, что я написал функцию, и она вернула строку **'name'**, хранящуюся в переменной с именем **key** cy.log(id) --> ВЫВОД: 'имя' cy.log(testData[id]) --> ВЫВОД: не определено cy.log(testData[tempId]) --> ВЫВОД: 'Джон' }) } Я зарегистрировал свою собственную переменную (в примере — id) с помощью cy.log(id) и убедился, что возвращаемое ею значение правильное, но почему-то результат не соответствует моим ожиданиям. Итак, мой вопрос: есть ли способ получить данные JSON через переменную в Cypress? Спасибо большое!
В JS, если я хочу получить данные в формате JSON с помощью моей собственной переменной, я могу использовать obj[id], как показано ниже.
// В JS константный идентификатор = 'имя' константный объект = { имя: 'Джон', возраст: 5 } console.log(obj['имя']); --> ВЫВОД: 'Джон' console.log(obj[id]); --> ВЫВОД: 'Джон' Я пробовал этот способ в Cypress при использовании фикстур, но он не работает должным образом. Но если я создам новую переменную и присвою ей определенное значение, Cypress будет работать.
**/fixtures/testData.json** { "имя": "Джон", "возраст": "5" } **/integration/testData.spec.cy.js** описать('Тестовые данные, полученные из файла JSON', () => { пусть testData; пусть идентификатор = '' beforeEach(() => { cy.fixture('testData.json').then(data => { тестДанные = данные }) }) it('Проверить, что пользователь перенаправлен на соответствующую страницу сведений', () => { CaseList.getTableBodyRecords() .then($case => { константные элементы = $case.toArray() вернуть Cypress._.sample(предметы) }) .then($selectedCase => { const idHeading = 'ID' const idElement = $selectedCase.find('td:first-child').text() id = idElement.slice(idHeading.length) }) .клик() it('Проверить тестовые данные', () => { const tempId = 'имя' cy.log(testData.name) --> ВЫВОД: 'Джон' // Предположим, что я написал функцию, и она вернула строку **'name'**, хранящуюся в переменной с именем **key** cy.log(id) --> ВЫВОД: 'имя' cy.log(testData[id]) --> ВЫВОД: не определено cy.log(testData[tempId]) --> ВЫВОД: 'Джон' }) } Я зарегистрировал свою собственную переменную (в примере — id) с помощью cy.log(id) и убедился, что возвращаемое ею значение правильное, но почему-то результат не соответствует моим ожиданиям. Итак, мой вопрос: есть ли способ получить данные JSON через переменную в Cypress? Спасибо большое!
Мобильная версия