C# 当指向某个节点的路径总是不同时,如何在XPath中查找该节点(或元素)

C# 当指向某个节点的路径总是不同时,如何在XPath中查找该节点(或元素),c#,xpath,automated-tests,selenium-webdriver,C#,Xpath,Automated Tests,Selenium Webdriver,因此,我尝试检查文本块的XPath,以验证是否返回了正确的页面。但是,对于我正在测试的几个站点和设计(使用Selenium 2),我搜索的文本块总是相同的,但是它的XPath总是不同的(文本块没有定义ID或类,所以我需要检查文本)。有没有一种简单的方法可以扫描特定的文本,而不必编写逻辑来逐个节点地尝试,直到找到文本为止(或者只是失败) 像这样的东西怎么样: //*[contains(text(), 'text you want to find')] (我假设您必须使用XPath?就我个人而言,

因此,我尝试检查文本块的XPath,以验证是否返回了正确的页面。但是,对于我正在测试的几个站点和设计(使用Selenium 2),我搜索的文本块总是相同的,但是它的XPath总是不同的(文本块没有定义ID或类,所以我需要检查文本)。有没有一种简单的方法可以扫描特定的文本,而不必编写逻辑来逐个节点地尝试,直到找到文本为止(或者只是失败)

像这样的东西怎么样:

//*[contains(text(), 'text you want to find')]

(我假设您必须使用XPath?就我个人而言,在可行的情况下,我更喜欢LINQ而不是XML,但可能您将XPath表达式提供给了Selenium…

谢谢!我要试一试。我之所以使用Xpath,是因为Selenium 2有一个内置的方法,但是您能详细介绍一下LINQ到XML(我对.Net还是新手)吗?它不需要是Xpath。@James:LINQ to XML是在.NET 3.5中引入的XML API。我怀疑XPath是更好的方法,除非Selenium也将LINQ中的DOM公开为XML。