У меня есть страница реакции в iframe с кнопкой, которая может войти в полноэкранный режим.Я проверил это вручную с Firefox и Chrome, которые оба работают.Тем не менее, щелчок с testcafe не переходит в полноэкранный режим и не проходит тест.
Я предполагаю, что iframe не проблема, потому что он работает вручную, но хотел упомянуть об этом на всякий случай.
Вот некоторые из приложений:
fs.fullScreen = function () {
const el = (fsEl && fsEl.current) || document.documentElement
if (el.requestFullscreen) return el.requestFullscreen()
if (el.mozRequestFullScreen) return el.mozRequestFullScreen()
if (el.webkitRequestFullscreen) return el.webkitRequestFullscreen()
if (el.msRequestFullscreen) return el.msRequestFullscreen()
}
<button onClick={fs.fullScreen}>Fullscreen</button>
Этот тест не пройден:
beforeEach((t) => t.switchToIframe(storybook.iframe))
afterEach((t) => t.switchToMainWindow())
test('The Fullscreen button enters fullscreen mode', async (t) => {
const { description, fullscreenButton } = storybook.hooks.fullscreen
await t
.expect(description.textContent)
.contains('Browser not in fullscreen mode')
.click(fullscreenButton)
.expect(description.textContent)
.contains('Browser in fullscreen mode')
})
В Firefox я видел ошибку консоли: Request for fullscreen was denied because Element.requestFullscreen() was not called from inside a short running user-generated event handler.
В Chrome я видел ошибку консоли: Uncaught TypeError: fullscreen error
.
Ошибка Firefox достаточно ясна, но я не знаю, как обойти ее с помощью testcafe.Существует способ , отредактировавший профиль firefox перед запуском теста, но он не будет работать для chrome или других браузеров.Вероятна ли проблема хрома по той же причине?
Похоже, что это была бы общая проблема, которую решают фреймворки автоматизации, поэтому я мог упустить что-то очевидное?