英文:
cypress how to get the div id of the index list and compare if its true
问题
我正在尝试循环遍历页面中所有'li'值。如果其定位符等于我正在搜索的值,我想要跳过并继续下一个索引值的遍历。
<div id="images">
<ul>
<li class= image> </li>
<li class= video> </li>
<li class= image> </li>
<li class= image> </li>
</ul>
</div>
所以当它是视频时,我想要跳过它,当它是图片时,可以继续进行验证。
cy.get(image.ALL_ITEMS).should('exist').its('length').then(($lengthAllImgs) => {
for (var $img = 0; $img < $lengthAllImgs - 1;$img++) {
if(cy.get(image.ALL_ITEMS).eq($img).find('li').contains('video').length > 0){
// 跳过视频
}
else {
// 继续处理图片
}
}
});
英文:
Hi I am trying to loop over all the 'li' value in my page. If its locator is equal to the value am searching i want it to skip and go over to the next index value and continue
<div id="images">
<ul>
<li class= image> </li>
<li class= video> </li>
<li class= image> </li>
<li class= image> </li>
</ul>
</div>
So here when its video I want to skip it and when its image it can continue with the validations.
cy.get(image.ALL_ITEMS).should('exist').its('length').then(($lengthAllImgs) => {
for (var $img = 0; $img < $lengthAllImgs - 1;$img++;) {
if(cy.get(image.ALL_ITEMS).eq(img).get('li').contains('video')){
break;
}
else {
}
}
I understand the above if formation is wrong but how do i change it to work to make the if and else work inside for loop
答案1
得分: 2
只需将.image
类添加到您的选择器中,以过滤出视频:
cy.get('div.images')
.find('li.image')
.each($image => {
...
})
英文:
Just add the .image
class to your selector to filter out the video:
cy.get('div.images')
.find('li.image')
.each($image => {
...
})
答案2
得分: 0
你可以使用 cy.each()
来遍历Cypress查询命令中返回的所有结果。使用这个方法,我们可以轻松确定元素的特征并确定要执行的操作。从你的示例中,看起来我们想要检查的属性是类,因此我们可以使用 JQuery 的 .hasClass()
。
cy.get('li').each(($li) => { // 通用选择器以选择所有项
if ($li.hasClass('video')) { // 使用 JQuery 的 `.hasClass()` 来确定元素是否是视频或图像
// 如果元素是视频类别,则执行的代码
} else {
// 如果元素是图像类别,则执行的代码
}
});
英文:
You can use cy.each()
to iterate through all yielded results from a Cypress query command. Using this, we can easily determine the characteristics of the element and determine what action to take. From your example, it looks like the attribute we want to check if the class, so we can use JQuery's .hasClass()
cy.get('li').each(($li) => { // generic selector to select all items
if ($li.hasClass('video')) { // use JQuery's `.hasClass()` to determine if the element is video or image
// code to execute if element is a video class
} else {
// code to execute if element is an image class
}
});
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论