我的仪表板上有一个下拉菜单,它会根据用户选择的选项的值将用户重定向到一个新的页面。下拉列表中的所有id也是URL中的路由,所以我想我可以选择列表中的任何选项,并断言URL路由包含该值。
我只是有麻烦弄清楚如何获得所选选项的值保存到测试本身的变量。
目前为止我所做的测试。现在我有一个变量,我想存储值(selectedIssueID
),但得到Cannot read properties of undefined (reading 'apply')
错误。
我有点迷路了,所以如果有人有任何想法,我将非常感激!
it.only('Issue Analysis dropdown functionality check', () => {
// Assert there are options in the dropdown
cy.get('[data-cy=issue-analysis-select-issue-dropdown]').should(
'have.length.gt',
0
)
// grab the last option and store the value
let selectedIssueID = ''
cy.get('[data-cy=issue-analysis-select-issue-dropdown] option')
.last()
.then(($lastOption) => {
cy.get('[data-cy=issue-analysis-select-issue-dropdown]')
.select($lastOption.text())
.then((selectedIssueID = $lastOption.text()))
.log(selectedIssueID)
})
// Assert it routes properly
cy.url().should('include', `/analysis/${selectedIssueID}`)
})