dom - 赛普拉斯:我在获取文本框“帮助!”时遇到问题。
问题描述
我正在尝试获取一个文本框,因此在代码中我添加了 data-cy 属性:
<login.StyledInput
// eslint-disable-next-line jsx-a11y/no-autofocus
autoFocus={focus}
type={type}
value={value}
disabled={disabled}
onInput={onInput}
onKeyUp={onKeyUp}
data-cy={`${text}-textbox`.replace(/\s+/g, '-')}
/>
在 DOM 中,它看起来像这样:
这在所有的文本框中添加了 data-cy,我正在寻找的一个名为 data-cy=Password-textBox,在开始时,我使用它来获取它:
cy.get('[data-cy=Password-textbox]').eq(1);
我正在使用eq(1)
,因为它是具有属性 data-cy=Password-textBox 的第二个元素,但是它不起作用,但是,我使用了下面的代码并且它起作用了:
cy.get('#other-form-animator > :nth-child(4) > .rs-input-group > [data-cy=Password-textbox]');
问题是我老板不让我用最后一个。
有谁知道更好看的解决方案?为什么 [data-cy=Password-textbox]
不起作用?
解决方案
您正在尝试通过 css 选择器获取元素。该选择器是一个字符串,用于获取属性 - 您应该为该属性使用双引号,该属性是字符串中的一个字符串。您可以将检查菜单中的元素从字面上复制粘贴到这个 cy.get 中:
cy.get('[data-cy="Password-textbox"]').eq(1);
推荐阅读
- macos - 如何在 swiftUI 生命周期中为三列视图添加工具栏分隔符
- c# - 如何通过拖放将列表视图项从一个列表移动到另一个列表?UWP C#
- python - 如何解决错误只能将str(不是“字节”)连接到str
- android - 从 iOS 访问谷歌智能锁密码
- c# - 尝试绑定下拉列表但 ToSelectList 类出错
- javascript - 是否可以在由 javascript 创建的元素上使用 getElementByClassName() - Mapbox
- javascript - Google 应用脚本中有哪些 javascript 函数?谷歌维护的官方名单?拒绝支持与否?
- javascript - Sapper/Svelte - 需要 @html 包含的内容来调用组件
- python - Python - 评估 Pandas DataFrame 中的两个表达式并创建新列
- sql - 检查一个多边形是否与每个集群中的其他多边形相交