如何在柏木中使用过滤器和包含时使用变量



在使用filter和contains时,我想使用variable而不是string。

下面是我的柏木

const var = "somestring";
cy.get('div[attr="value"])
.filter(':contains("somestring"))'
.should('have.length', 1);

以上工作。但我想使用变量而不是传递字符串";somestring";直接到过滤器。

像下面这样,

const var = "somestring";
cy.get('div[attr="value"])
.filter(':contains(var))'
.should('have.length', 1);

但这不起作用,因为我在引号中传递了var,并且被认为是字符串。

如何将var传递给contains。你能帮我做这个吗。我是柏树和编程的新手。谢谢

您可以为此使用Template Literals。类似于:

const var = "somestring";
cy.get('div[attr="value"]')
.filter(`:contains(“${var}”)`)
.should('have.length', 1);

按如下方式编写选择器字符串:

const textOfElement = "somestring";
const filterSelector = `:contains("${textOfElement}")`          // templated string   
// or
// const filterSelector = ':contains("' + textOfElement + '")'  // concatenated string
cy.get('div[attr="value"])
.filter(filterSelector)
.should('have.length', 1);

相关内容

最新更新