首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Cypress:如何滚动下拉菜单来查找项目

Cypress:如何滚动下拉菜单来查找项目
EN

Stack Overflow用户
提问于 2021-05-18 09:40:39
回答 4查看 1.1K关注 0票数 1

我需要单击下拉列表并滚动以按文本查找项目。

目前,我知道该项目在列表的底部,所以我可以这样做:

cy.get('.ng-dropdown-panel-items').scrollTo("bottom").contains(/test/i).click()

这是有效的,但如果项目移动,不再在底部,这将打破。

我尝试过scrollIntoView,但没有成功:

cy.get('.ng-dropdown-panel-items').contains(/test/i).scrollIntoView().click()

cy.get('.ng-dropdown-panel-items').scrollIntoView().contains(/test/i).click()

有人知道我怎么做吗?

更新:选项列表是动态生成的(并非所有选项最初都在DOM中),因此需要滚动到底部才能获得所有选项。一旦所有选项都可用,就可以使用.contains()来查找元素。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-05-19 11:46:37

虚拟模式中的Angular ng-select处理起来相当棘手。

它的list是虚拟的,这意味着它一次只有DOM中的一些项,所以您不能选择它们并遍历它们。

您可以递归地扫描选项列表并使用.type({downarrow})将新选项移动到DOM中(这是用户与之交互的一种方式)。

代码语言:javascript
运行
AI代码解释
复制
it('selects an option in a virtual-scroll ng-select', () => {

  cy.visit('https://ng-select.github.io/ng-select#/virtual-scroll')

  cy.get('ng-select').click();                    // open the dropdown panel

  cy.get('.ng-option')
    .should('have.length.gt', 1);                 // wait for the option list to populate

  function searchForOption(searchFor, level = 0) {

    if (level > 100) {                                         // max options to scan
      throw 'Exceeded recursion level'                         // only useful for 100's
    }                                                          // not 1000's of options 

    return cy.get('ng-select input')
      .then($input => {
        const activeOptionId = $input.attr('aria-activedescendant') // highlighted option
        const text = Cypress.$(`#${activeOptionId}`).text()         // get it's text
        if (!text.includes(searchFor)) {                            // not the one?
          cy.wrap($input).type('{downarrow}')                       // move the list
          return searchForOption(searchFor, level + 1)              // try the next
        }
        return cy.wrap(Cypress.$(`#${activeOptionId}`))
      })
  }

  searchForOption('ad et natus qui').click();             // select the matching option

  cy.get('.ng-value')
    .should('contain', 'ad et natus qui');                // confirm the value 

})

请注意,递归可能会占用大量内存,并且可以对此代码进行一些优化。

票数 2
EN

Stack Overflow用户

发布于 2021-05-18 09:54:51

在大多数情况下,您需要cy.get().select,例如:

cy.get('.ng-dropdown-panel-items').select(/test/i)

票数 1
EN

Stack Overflow用户

发布于 2021-05-18 13:23:58

您可以使用each()遍历下拉元素,当您找到所需的文本时,创建一个click()

代码语言:javascript
运行
AI代码解释
复制
cy.get('span.ng-option-label.ng-star-inserted').each(($ele) => {
  if($ele.text() == 'desired text') {
    cy.wrap($ele).click({force: true})
  }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67583714

复制
相关文章
Cypress系列(16)- 查找页面元素的基本方法
https://www.cnblogs.com/poloyy/category/1768839.html
小菠萝测试笔记
2020/06/19
1.2K0
Cypress系列(17)- 查找页面元素的辅助方法
https://www.cnblogs.com/poloyy/category/1768839.html
小菠萝测试笔记
2020/06/19
2.3K0
NExfil:如何通过用户名来查找用户资料
NExfil是一款功能强大的OSINT公开资源情报工具,该工具采用Python开发,可以帮助广大研究人员通过用户名来查找目标用户的个人资料。研究人员在将目标用户名提供给NExfil之后,NExfil会在几秒钟之内快速查询超过350个网站。该工具的主要目标就是在保持低误报率的同时快速得到扫描结果。
知识与交流
2021/09/23
6160
NExfil:如何通过用户名来查找用户资料
NExfil:如何通过用户名来查找用户资料
NExfil是一款功能强大的OSINT公开资源情报工具,该工具采用Python开发,可以帮助广大研究人员通过用户名来查找目标用户的个人资料。研究人员在将目标用户名提供给NExfil之后,NExfil会在几秒钟之内快速查询超过350个网站。该工具的主要目标就是在保持低误报率的同时快速得到扫描结果。
FB客服
2021/08/24
6480
CSS 下拉菜单_下拉菜单html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/01
7K0
如何使用apt-cache搜索来查找软件包?
当你不知道确切的软件包名称时,你可能会在安装apt软件包时遇到问题。与apt一样,你必须提供软件包的全名才能安装它,例如apt install apache2。如果没有提供确切的名称,而只是输入apache,它将不会被安装,删除apt软件包时也是如此。
用户6543014
2020/05/06
18.8K1
如何利用HiJackThis来查找恶意软件和其它安全威胁
HiJackThis是一款免费的实用工具,可以帮助广大研究人员搜索恶意软件、恶意广告软件和其他安全威胁。该工具基于原来趋势科技的HiJackThis工具进行开发,并且已经100%重写了原工具引擎的源代码。
FB客服
2021/03/09
5030
如何利用HiJackThis来查找恶意软件和其它安全威胁
Cypress web自动化30-操作窗口滚动条(scrollTo)
web页面的操作,有些元素不在窗口上显示,需滑动滚动条才能显示出来,Cypress 可以使用 scrollTo 操作滚动条的位置。 可以根据窗口的位置来滚动,也可以根据屏幕像素或百分比来滚动。
上海-悠悠
2020/06/04
1.6K0
如何设计下拉菜单(技巧+实例)
下拉菜单可以说是网页设计中令人又爱又恨的元素之一了。下拉菜单有许多优点:不占地方,不需要做输入验证,所有平台都支持,技术门槛低,用户都很熟悉其使用方法。然而与之同时,下拉菜单又是最容易被错误使用的表单组件。这篇文章就来告诉大家下拉菜单的适用场景、设计技巧以及一些漂亮的实例。
奔跑的小鹿
2019/01/24
3.1K0
如何设计下拉菜单(技巧+实例)
Excel中如何制作下拉菜单
文字教程 准备好需要生成的清单 选择你想制作下拉菜单的单元格 依次点击数据→数据验证 在弹出的数据验证菜单中选择第一个设置页(默认也是这个) 在允许下面选择序列(会跳出一个来源) 点击选择按钮,选择序号1准备的清单 也可以手动输入清单,逗号得保证是英文逗号.例如输入 土建,渗漏,门窗 确定,完成 --- 图文教程 准备好需要生成的清单 [清单] 选择你想制作下拉菜单的单元格,然后依次点击数据→数据验证 [数据→数据验证] 在弹出的数据验证菜单中选择第一个设置页(默认也是这个) [设置页]
但老师
2020/02/27
1.7K0
Excel中如何制作下拉菜单
↓↓↓ HTML如何局部滚动而头尾不滚动 ↓↓↓
兼容 android(4.3版本 三星 note2)进行嵌套,没有引用任何插件,纯css。
White feathe
2021/12/08
3.1K0
Cypress(三)cypress实战
2.在项目的cypress->integration目录下新建login.spec.js文件,输入以下代码
周辰晨
2020/05/26
9950
Cypress(三)cypress实战
如何扩展Laravel Auth来满足项目需求
之前写过两篇文章分别介绍了Laravel Auth认证系统的构成和实现细节知道了Laravel是如何应用看守器和用户提供器来进行用户认证的,但是在现实工作中大部分时候产品用户体系是早就有的这种情况下就无法使用框架自带的Auth系统,所以或多或少地我们都会需要在自带的看守器和用户提供器基础之上做一些定制化来适应项目,我会列举一个在做项目时遇到的具体案例,在这个案例中用自定义的看守器和用户提供器来扩展了Laravel的用户认证系统让它能更适用于我们自己开发的项目。
KevinYan
2019/10/13
2.8K0
Cypress 常见操作
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。
wencheng
2021/01/05
1.5K0
Cypress 常见操作
Cypress(二)Cypress相关介绍
Cypress是新一代ui测试框架,类似于selnium,它基于node js,支持webpack构建。
周辰晨
2020/05/17
1.2K0
前端自动化测试框架cypress
自动化测试是一种测试方法,是指使用特定的软件,去控制测试流程,并比较实际结果与预期结果之间的差异。通过将测试自动化,可以把人对软件的测试行为转化为由机器自动执行测试的行为,从而替代大量的手工测试操作,使得测试可以快速,反复的进行。
javascript艺术
2022/01/11
2.2K0
前端自动化测试框架cypress
从 antDesign 来窥探移动端“滚动穿透”行为
上述是 MDN 中对于 overscroll-behavior 属性的描述,上述这段话恰恰描述了为什么会发生"滚动穿透"现象。
19组清风
2023/07/31
6570
从 antDesign 来窥探移动端“滚动穿透”行为
javascript下拉菜单代码(用jquery做下拉菜单)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126047.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/01
11.6K0
javascript下拉菜单代码(用jquery做下拉菜单)
屏幕宽高不够,滚动视图ScrollView来凑
前面几期学习了ProgressBar系列组件、ViewAnimator系列组件、Picker系列组件和时间日期系列组件,接下来几期继续来学习常见的其他组件。 一、ScrollView概述 从前面的学习有的同学可能已经发现,当拥有很多内容时屏幕显示不完,显示不全的部分完全看不见。但是在实际项目里面,很多内容都不止一个屏幕宽度或高度,那怎么办呢?那就需要本节学习的ScrollView来完成。 在默认情况下,ScrollView只是为其他组件添加垂直滚动条,如果应用需要添加水平滚动条,则可
分享达人秀
2018/02/05
3.2K0
屏幕宽高不够,滚动视图ScrollView来凑
html导航栏可以展开的下拉菜单,html导航栏下拉菜单如何制作[通俗易懂]
小编给大家分享一下html导航栏下拉菜单如何制作,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
全栈程序员站长
2022/09/01
9.1K0

相似问题

Cypress -如何等待选择下拉菜单来加载所有选项?

13

如何在cypress中从下拉菜单中选择项目?

195

使用Cypress -如何查找处于特定状态的相邻项目

20

使用Cypress单击下拉菜单

125

禁止Cypress自动滚动

322
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档