У меня есть Cypress-тест, который запускает XHR-запрос, который возвращает XML-ответ. Моя цель - проанализировать XML-ответ и проверить несколько узлов. Я использовал JQuery - parseXML()
, который работает как положено; но, когда я пытаюсь выполнить итерацию проанализированных XML-файлов, я сталкиваюсь с ошибкой ниже,
ReferenceError: $ is not defined
что я подозреваю на линии -> Cypress.$(java).each(function()
Тест на кипарис:
it("cy.request - make an XHR request", () => {
cy.request({
log: true,
url: "SOME_URL",
auth: {
user: Cypress.env('userName'),
pass: Cypress.env('password')
}
}).then(response => {
const xml = Cypress.$.parseXML(response.body)
cy.log(response.body)
console.log(xml)
const java = xml.getElementsByTagName('java')
Cypress.$(java).each(function() {
cy.log($(this).find("configuration>property>name").text())
})
expect(response).property("status").to.equal(200);
});
});
Пример ответа XML:
<workflow-app name="Samyghjggjg" xmlns="hjkh">
<action name="etl-69b5" retry-max="0" retry-interval="10">
<java>
<configuration>
<property>
<name>mapred.job.queue.name1</name>
</property>
</configuration>
</java>
<java>
<configuration>
<property>
<name>mapred.job.queue.name2</name>
</property>
</configuration>
</java>
</action>
</workflow-app>
Сделал некоторый анализ и отметил следующие детали от - https://docs.cypress.io/api/utilities/$.html#Syntax
Вызов Cypress. $ ('Button') автоматически запросит элементы в вашем удаленном окне. Другими словами, Cypress автоматически устанавливает для документа то, к чему вы в данный момент перешли с помощью cy.visit ().
Любая помощь будет полезна для преодоления этого.