如何解决赛普拉斯"not a valid XPath expression"错误?



我使用这个字符串来查找一个元素:

cy.xpath('//*[text()="search ${keyword}")]')

当我运行测试时,它在控制台中显示了正确的结果,但也显示了这个错误:

在'Document'上执行'evaluate'失败:字符串'//*[text()="search ${keyword}")]'不是有效的XPath表达式。

我使用了contains,它可以工作。在我的XPath中有一个图标,它找不到文本。

cy.xpath(`//*[contains(text(), 'search ${keyword}')]`)

你原来的问题有问题了

实际的语法错误是由于多余的):

cy.xpath('//*[text()="search ${keyword}")]')
^

删除该字符以消除语法错误。

关于自我回答的问题

你的解决方案,

cy.xpath(`//*[contains(text(), 'search ${keyword}')]`)

并不像你想象的那样。(它只检查每个元素的第一个text()节点子节点中的子字符串。)

相反,使用

cy.xpath(`//*[text()[contains(., 'search ${keyword}')]]`)

或根据您的要求在链接的解释中显示的其他变体。

相关内容

最新更新