我使用这个字符串来查找一个元素:
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}')]]`)
或根据您的要求在链接的解释中显示的其他变体。