Cypress - XML-разбор ответа XHR-запроса с использованием JQuery - PullRequest
0 голосов
/ 20 марта 2019

У меня есть 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 ().

Любая помощь будет полезна для преодоления этого.

1 Ответ

1 голос
/ 20 марта 2019

Я предполагаю, что внутри cy.log($(this).... вам все еще может понадобиться добавить cy.log(Cypress.$(this)..., чтобы использовать jquery в Cypress. Я еще не пробовал, но стоит попробовать.

Cypress.$(java).each(function() {
            cy.log(Cypress.$(this).find("configuration>property>name").text())
        })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...