在使用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);