【问题标题】:Cypress test material ui autocomplete赛普拉斯测试材料 ui 自动完成
【发布时间】:2021-09-08 11:44:00
【问题描述】:

如何从 cypress 的下拉列表中获取材料 ui 自动完成的值。

目前它可以选择自动完成,但我似乎无法进入下拉菜单或输入任何内容。总会有一个名为“ntest_user”的测试用户,所以我想也许我可以自动完成它而不是点击下拉菜单但没有骰子

  <Autocomplete
    id="combo-box"
    data-testid="tagAutocomplete"
    options={userz}
    getOptionLabel={(option) => option}
    value={userId}
    onChange={viewUserz}
    renderInput={(params) => <TextField {...params}
      label="User Id"
      variant="outlined" />}
  />
</FormControl>


cy.get('.tagAutocomplete li[data-option-index="0"]').click();

【问题讨论】:

  • 您的下拉菜单在您点击时是否有任何价值?您可以为此添加屏幕截图吗?
  • 是的,下拉菜单中有“ntest_user”

标签: autocomplete material-ui cypress


【解决方案1】:

你可以这样做:

cy.get("#combo-box").click();
cy.get("li[data-option-index="0"]").contains("ntest_user").then((option) => {
   option[0].click();
})

OP 可以通过这个来解决:

cy.get("#combo-box").click();
cy.contains("ntest_user").then((option) => {
   option[0].click();
})

【讨论】:

  • 非常接近,但预期会出现错误以找到选择器但从未找到它
  • 选择器只是一个虚拟文本,您必须在那里使用实际的选择器。这看起来像第一个下拉元素 li[data-option-index="0"] 的定位器,但我不确定。
  • 我删除了 .get("selector") 并将其保留为 cy.contains 等,这样就可以了!这样做有什么问题吗?
  • Nopes 也能正常工作 cy.contains() 是一个有效的命令。
  • 非常感谢您的帮助,您怎么知道上面的命令可以解决它?有什么文档可以指点我吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 2023-02-14
  • 2021-11-14
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多