【问题标题】:How to get conditional row element in cypress如何在柏树中获取条件行元素
【发布时间】:2021-07-15 12:18:36
【问题描述】:

我正在使用 cypress 测试我的应用程序。例如,我的表中有 4 个值。

在这种情况下,我想获取具有特定值的行 cypress-farm,然后我想获取具有 cypress-farm 的行的 id 列,但 cypress 获取表中的每个 id 列。有人可以告诉我一个指针怎么做吗?我想念什么 在这种情况下,值“选择器”是 id 列我的问题是 cy.request

上面的行
public static addproductToFarm(selector:string, productName:string) {
        cy.get(".list").then(($temp1) =>{
            cy.get(".list")
                .contains("cypress-farm")
                .get(selector).then(($temp)=>{
                const txt = $temp.text()

                cy.request({
                    url: Cypress.env("api_server") + "products/",
                    method: 'POST',
                    form: false,
                    headers: {
                        'Content-Type': 'application/json; charset=utf-8',
                    },
                    body: {
                        availability: true,
                        category: {
                            hasOthers: false,
                            id: 1,
                            indexRanking: 0,
                            name: "Obst",
                            shown: true,
                            subCategories: [
                                null
                            ]
                        },
                        delivery: true,
                        description: productName,
                        descriptionExcerpt: "Cypress Product",
                        farmId: txt,
                        name: "Apple by Postman",
                        pickUp: true,
                        price: 10.00,
                        quantity: 10,
                        storageLimit: 10,
                        unit: "kg",
                        visibility: true
                    }


                })

            })
        } )

        return this;

    }

【问题讨论】:

    标签: javascript typescript automated-tests cypress


    【解决方案1】:

    我想你可能想要.find(selector) 而不是.get(selector)

    get() 从文档开始,但find() 从上一个主题开始(.contains("cypress-farm") 的结果)。

    Get vs Find

    cy.get 命令总是从cy.root 元素开始搜索。在大多数情况下,它是文档元素,除非在 .within() 命令中使用。 .find 命令从当前主题开始搜索。

    【讨论】:

    • 嗨,我试过了,但它不起作用,原因是我的包含只是一列,也许这就是为什么? .list 是我的完整表格,但它仍然不起作用
    • 如果你看一下 HTML 会更容易,但是当你谈论行和列时,你可能会有表格元素( 代表行, 代表列)。如果是这样,.contains("cypress-farm") 将产生最接近该文本的元素,在本例中为 ,但您可能想要 代替 - 这将是 .contains("tr", "cypress-farm")
    • 或者如果有例如
      代表行,则替换 .contains("div[role='row']", "cypress-farm") 以定位行元素。
    • 您好,我听从了您的建议,找到了 item.row 并将我的 get inside 更改为:cy.get(".item.row")
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签