проверьте, видим ли элемент DOM. идентификатор не виден

ли войти в учетную запись Google с помощью Cypress.io, используя всплывающее окно аутентификации Google?

Я могу заставить окно открыться, но тогда Cypress не может определить идентификатор поля ввода электронной почты.

Ошибка: «CypressError: Тайм-аут повторной попытки: Ожидается найти элемент:« #identifierId », но так и не найден».

it('Login', function() {
    cy.visit('home')
    cy.get('#signin-button').click()
    cy.get('#google-login-button').click()
    // cy.wait(1500) // wait doesn't help
    cy.get('#identifierId')
    .type('[email protected]') // <<-- error here
  })

Ответы на вопрос(1)

Решение Вопроса

поддержка iframe.

Однако Cypress не рекомендует посещать сторонние приложения в рамках ваших тестов. Есть много причин для этого, в том числе:

Это невероятно много времени и замедляет ваши тесты.Сторонний сайт, возможно, изменил или обновил свой контент.Сторонний сайт может иметь проблемы вне вашего контроля.Сторонний сайт может обнаружить, что вы тестируете с помощью скрипта, и заблокировать вас.Сторонний сайт может проводить A / B-кампании.

Сайпресс изложил минусы посещения сторонних сайтов, которые вы не контролируете, и некоторые обходные пути в их документах.Я предлагаю прочитать полное объяснение здесь.

 beachCode21 дек. 2017 г., 19:42
Хорошо, но при всем моем уважении, мой проект представляет собой приложение SaaS, которое использует общедоступные сторонние API для своих основных функций. Я не могу придерживаться правила, которое гласит: «не используйте сторонние API» или «не полагайтесь на доступ в Интернет». Без Интернета мое приложение буквально не может функционировать.
 Jennifer Shehane21 дек. 2017 г., 20:02
Извините, если я ошибся. Я не говорил, что вы не должныиспользование Сторонние API, только то, что есть множество недостатков в тестировании функциональности сторонних приложений от начала до конца, и часто рекомендуется проводить большинство тестов, чтобы проверить, правильно ли ваше приложение взаимодействует со сторонним API.
 beachCode20 дек. 2017 г., 20:25
Спасибо за подробности. Я действительно удивлен. Я не посещаю сторонние сайты. Мое собственное приложение использует аутентификацию Google, поэтому всплывающее окно Google является частью моего приложения. Может быть, это просто семантика, но поскольку аутентификация Google является частью моего сайта, я не считаю его сторонним для тестирования Cypress.
 Jennifer Shehane21 дек. 2017 г., 17:20
Да, под третьей стороной мы подразумеваем, что ваша служба аутентификации использует код приложения сторонней организации. Если Google не работает или ваш интернет не работает при локальном запуске приложения, ваше приложение не будет работать. Это хороший способ определить, используете ли вы то, что Cypress называет «сторонним сайтом».

Ваш ответ на вопрос