Используя Cypress и TypeScript, как сохранить текущий URL-адрес в строковую переменную, go - в новый URL-адрес, а затем go - в ранее сохраненный URL-адрес? - PullRequest
0 голосов
/ 13 марта 2020

Я пишу тест автоматизации (больше похоже на скрипт), где я go на URL, а затем нажимаю кнопку, которая переводит меня на страницу с динамическим c URL. Теперь мне нужно go к предварительно определенному URL и сделать что-то там, после чего мне нужно go вернуться к ранее сохраненному динамическому c URL и проверить что-то там. Основываясь на ответе в на этот вопрос о стековом потоке , я пробовал ниже, но он не работал:

    it('Saves current url, goes to a new url, goes back to previously saved url', () => {
        let currentUrl = null
        cy.url().then(tempVar => {
            currentUrl = tempVar
        })
        cy.visit('https://a-new-url')
        cy.pause() // To pause execution and see the url changing
        cy.visit(currentUrl)
    })

Это приводит к тексту ошибки:

Нет перегрузка соответствует этому вызову. Перегрузка 1 из 2, '(url: string, options ?: Partial | undefined): Chainable', вызвала следующую ошибку. Аргумент типа 'null' не может быть назначен параметру типа 'string'. Перегрузка 2 из 2, '(параметры: Partial & {url: string;}): Chainable', выдало следующую ошибку. Аргумент типа 'null' не может быть назначен параметру типа 'Partial & {url: string; }». Тип 'null' нельзя назначить типу 'Partial'.ts (2769)

снимок экрана с ошибкой:

enter image description here

1 Ответ

0 голосов
/ 13 марта 2020

Один из разработчиков в моей команде помог мне с приведенным ниже кодом, который отлично работает:

    it('Saves current url, goes to a new url, goes back to previously saved url', async () => {
        let currentUrl = await new Promise<string>(resolve => cy.url().then(tempVar => {
            resolve(tempVar)
        }))
        cy.visit('https://a-new-url')
        cy.pause() // So that you can pause execution and see the url changing
        cy.visit(currentUrl) // Successfully takes you back to the old url
})
...