我正在尝试使用赛普拉斯自动化应用程序的基本测试。到目前为止,一切都进行得很顺利(甚至CSRF令牌提取)。虽然选择元素时碰到了墙。
我遇到的情况是,相同的name元素返回多个结果。在这种情况下,以下html返回7个实例。我需要选一个,我该怎么做?
<div class="EventAddButton__hover___11l17" style="opacity: 0; transform: translateY(-55px);">Add an entry</div>
我要运行的Cypress脚本是:
it ('Create an event', function() {
cy.get('.EventAddButton__hover___11l17').click()
})
赛普拉斯建议通过开关multiple:true
,但我需要单击一下。
也许沿着选择父母的道路走下去?
任何建议将不胜感激!
答案 0 :(得分:3)
请尝试以下操作:
// This dictionary will have all your events grouped based on the day it belongs to.
let dict = Dictionary(grouping: array) { (element) -> Int in
return element.day
}
// If you need a sorted list of events based on the day.
let groupedItems = dict.sorted {
return $0.key < $1.key
}
// groupedItems would now have all the data, grouped and ready to be used.
for day in groupedItems {
print("\(day.key): \(day.value.count)")
}
注意:请参阅this文档
答案 1 :(得分:2)
如果这些元素有一个父元素,则使它们唯一。你可以
it ('Create an event', function() {
cy.get('PARENT ELEMENT SELECTOR').get('.EventAddButton__hover___11l17').click()
})
或
it ('Create an event', function() {
cy.get('PARENT ELEMENT SELECTOR').find('.EventAddButton__hover___11l17').click()
})
或者如果您知道要单击的元素的索引
it ('Create an event', function() {
cy.eq(0).get('.EventAddButton__hover___11l17').click()
})
**如果要按索引进行操作,请选择T GURUNG ..'