#javascript #testing #cypress
Вопрос:
Я должен нажать кнопку, выбрать другую валюту, а затем проверить 24-часовой обменный курс и посмотреть, положительный ли он. Я очень новичок в cypress и пытаюсь учиться. Я прочитал документы cypress, но не смог найти руководство.
До сих пор это мой код.
describe('dropdown select', () => { it('open dropdown', () => { cy.visit('https://spectrocoin.com/en/bitcoin-price-rates.html') cy.get('[class=" css-2b097c-container"]', { timeout: 20000 }) cy.get('button').contains('USD').click() }) })
Я добавил тайм-аут в 20 секунд, потому что казалось, что страница не загружается до нахождения элемента. Но при выделении в среде Cypress он показывает совершенно другой элемент, чем среда элементов проверки Chrome.
В чем может быть проблема, если он не найдет правильную кнопку, а затем выберет, скажем, валюту EUR в раскрывающемся списке.
Ответ №1:
Вы можете сделать что-то вроде этого:
describe('dropdown select', () => { it('open dropdown', () => { cy.visit('https://spectrocoin.com/en/bitcoin-price-rates.html') Cypress.on('uncaught:exception', (err, runnable) => { return false }) //Ignore exceptions cy.get('[data-cy=accept-btn]').click() cy.get('#currency-select').should('be.visible').click() }) })
Вместо класса вы можете использовать селектор идентификатора #currency-select
, и это работает.
Чтобы игнорировать исключения, исходящие с вашей веб-страницы, вы можете использовать это. Но ваша веб-страница в первую очередь не должна создавать исключения, и ваш тест должен быть в состоянии их перехватить в случае, если это произойдет. Так что использовать это не очень хорошая практика. Вместо этого позвольте вашему тесту провалиться и попросите своих разработчиков изучить его и исправить.
Cypress.on('uncaught:exception', (err, runnable) => { return false })
Комментарии:
1. Похоже, в строке, которая должна нажать кнопку «Принять», отображается ошибка.
cy.get('[data-cy=accept-btn]').click()
. Может ли это быть связано с тем, что веб-сайт недостаточно быстро загружается и находит его?2. В чем заключается ошибка, которую вы получаете ?
3. «0 совпадающих элементов»
4. Я запустил точный код локально, и он работает на меня. Я добавил скриншот, на котором вы можете видеть, как открывается выпадающий список валюты. Также я видел, что веб-страница выдавала исключения, которые вы должны добавить
Cypress.on('uncaught:exception', (err, runnable) => {return false})
5. Добавление исключения сработало. Теперь он успешно щелкает по раскрывающемуся списку. Я продолжу работать над тем, как выбрать валюту, а затем 24-часовые курсы. Спасибо.