【发布时间】:2021-12-11 01:46:33
【问题描述】:
我目前正在学习一些非常基本的 JS 和 Cypress,以便能够为我正在开发的闪亮的 R markdown 应用程序编写一些 UI 测试(对此非常陌生!!)。我设法编写了一个简单的测试,该测试断言在应用程序启动时默认选择给定值。但是,我希望能够选择特定元素,更重要的是,循环遍历可用元素的整个列表,以断言输出符合预期。
我不知道如何从下拉列表中选择特定元素,也不知道如何实现循环。任何指针将不胜感激!
这是一个简单的闪亮应用,仅包含一个带有 3 个选项的下拉菜单(app.R 文件),因为由于专有原因,我无法共享原始代码:
library(shiny)
ui <- fluidPage(
selectizeInput(inputId = 'element1', label = "Test input",
choices = c('descriptive', 'comparative', 'neutral'),
selected = 'descriptive')
)
server <- function(input, output) {}
# Run the application
shinyApp(ui = ui, server = server)
在我的简单 UI 测试中,我设法编写了类似这样的断言:
cy.get('select#element1 option:selected')
.should('have.value', 'descriptive')
但是当我使用网络检查器检查selectizeInput 的结构时,我不明白为什么这些选项没有列为选择选项。这似乎是我不能使用 cy.get('select#element1').select('comparative') 之类的东西从下拉列表中选择不同值的原因。我以为其他选项可能是“隐藏的”,但后来我在 DOM 中的一个单独的 div 中找到了它们:
我真的才刚刚开始学习所有这些,所以任何指针都会非常有帮助。甚至只是为了帮助我在谷歌上搜索正确的东西,因为谷歌搜索如何使用 cypress 中的选择元素显然不是正确的事情?
【问题讨论】:
标签: r shiny cypress selectize.js