Мне нужно использовать Javascript блестящих событий (например, shiny:recalculated
), описанных здесь https://shiny.rstudio.com/articles/js-events.html, чтобы знать, когда запускать следующее тестовое действие внешнего интерфейса (без снов). Это делает тесты детерминированными c и сокращает время тестирования. Тем не менее, я не могу использовать событие из Cypress или из консоли разработчика ведомого браузера.
Рассмотрим, например, простой код, взятый из https://github.com/rstudio/shiny-examples/blob/master/084-single-file/app.R и модифицированный для запуска приложения в браузере
# Global variables can go here
n <- 200
# Define the UI
ui <- bootstrapPage(
numericInput('n', 'Number of obs', n),
plotOutput('plot')
)
# Define the server code
server <- function(input, output) {
output$plot <- renderPlot({
hist(runif(input$n))
})
}
# Return a Shiny app object
shinyApp(ui = ui, server = server, options = list(launch.browser = TRUE))
После выполнения
$(document).on('shiny:recalculated', function (event) {
if (event.target.id === "plot") {
alert('Output has been just refreshed')
}
})
в браузере консоль разработчика и изменение ввода (до 201
) Я получаю
Однако это не относится к браузеру, запущенному Cypress. Есть идеи почему?