Cypress и Script Injection внутри тестового сценария - PullRequest
0 голосов
/ 10 сентября 2018

Я довольно новичок в Cypress и в данный момент пытаюсь протестировать веб-страницу, которая использует расширение браузера, которое я создал. Это расширение только добавляет набор файлов JS и CSS на веб-страницу, и я хочу смоделировать то же самое в моих интеграционных тестах, чтобы иметь возможность внедрять библиотеки и тестировать поведение. Мне было интересно, есть ли способ получить доступ к объекту документа из теста Cypress, чтобы внедрить CSS или JavaScript в заголовок веб-страницы.

1 Ответ

0 голосов
/ 12 сентября 2018

Да, есть. Cypress на самом деле работает в браузере, и хотя команды помещаются в очередь асинхронно , вы можете поставить в очередь собственный JS-код для запуска, например:

cy.get("html").then(() => {
    document.querySelector("div.myDiv").innerHTML = "...";
    // ...
});

Если вы пытаетесь нацелить или изменить конкретный элемент, вы можете получить его через Cypress, чтобы воспользоваться автоматической повторной попыткой дождаться существования элемента, прежде чем работать с ним:

cy.get("div.myDiv").then(elem => {
    elem.innerHTML = "...";
    // ...
});
...