用于在cypress中选择复选框的自定义命令

6yoyoihd  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(527)

我已经编写了一个自定义命令,用于根据我提供的联系人姓名选择复选框(请参阅图片)例如,我提供test10 test10,它没有被选中,但是测试用例没有被选中就通过了,我尝试调试cname变量为空并附加调试器屏幕截图

Cypress.Commands.add("SelecttheContact", (contactName) => { 
    cy.get('tr td:nth-child(2)').each(($el, index, $list) => {
    const cname=$el.find(contactName).text()

    if(cname.includes(contactName))
    {

       // cy.get("tr td:nth-child(1)").eq(index).click()
       // cy.get("input[type='checkbox']").eq(index).click()
       debugger
       $e1.find('checkbox').click()
    }
}) })
zlhcx6iw

zlhcx6iw1#

.find() 根据docu接受选择器:https://api.jquery.com/find/ 所以传递文本内容是行不通的。 text() 返回空字符串,因为如果在jquery中找不到选择器,则始终会得到一个对象。调用到该对象的函数将返回默认值。
为什么测试通过不能从我们所看到的来确定:-)
我建议您调整复选框的选择器。
顺便说一句,我不确定你是否能打电话来 cy.get()each() (代码中注解掉的行)。
目前我不在我的笔记本电脑,所以我不能提供一个点击复选框的例子。但请尝试修复选择器,如果它不工作,我可以自己尝试。

inb24sb2

inb24sb22#

我在这里可能错了,但看起来您是在依赖jquery而不是cypress来完成选择工作。我会使用cypress选择来查找复选框。
你知道柏树运动场吗?
选择器是一种交互式功能,可帮助您:
确定元素的唯一选择器。
查看与给定选择器匹配的元素。
查看与文本字符串匹配的元素。
https://docs.cypress.io/guides/core-concepts/test-runner.html#selector-操场
还有一个api选项可以更改选择器的优先级
选择器将公开API,使您能够:
更改默认选择器策略
重写每个元素返回的选择器
https://docs.cypress.io/api/cypress-api/selector-playground-api.html#syntax

相关问题