Cypress 通过 aria 角色获取元素
Posted
技术标签:
【中文标题】Cypress 通过 aria 角色获取元素【英文标题】:Cypress get element by aria role 【发布时间】:2021-02-11 07:18:10 【问题描述】:<form>
<input type='text' name='user'/>
</form>
通过 aria 角色“文本框”获取输入元素。我尝试了许多不同的方法,但一切都以“未找到”的形式返回
cy.get('role=input')
cy.get('[role=input]')
cy.get('role="input")
cy.get('[role="input"])
cy.get('role=textbox')
cy.get('[role=textbox]')
cy.get('role="textbox")
cy.get('[role="textbox"])
cy.get('form[role="textbox"]')
cy.get('form[role=textbox]')
我尝试过其他的事情,比如大写角色。我从文档中了解到
cy.get('[role="textbox"]')
应该可以工作,但找不到返回。
从 dev-tools 可以看出它确实有这个作用
【问题讨论】:
[role="textbox"]
只有在它具有特定的属性角色时才会存在,不是吗?测试库按角色有选择器:testing-library.com/docs/cypress-testing-library/intro
是的,但是输入框默认有文本框作为角色
这个链接很有趣,我会看看这个
【参考方案1】:
You can use this css selector CSS selector for text input fields?
cy.get9('input[type="text"]')
【讨论】:
是的,这将获得输入,我最终安装了@testing-library/cypress 并使用它的角色,但它也并不总是有效。所以我使用 cy.contains('role', 'text/title') 和 cy.findByRole('role', name:以上是关于Cypress 通过 aria 角色获取元素的主要内容,如果未能解决你的问题,请参考以下文章
当已经设置了 aria-selected 时,是不是应该为 Treeitem 角色设置 aria-checked 状态?