Java xpath无法区分类似的链接文本

Java xpath无法区分类似的链接文本,java,html,xpath,webdriver,Java,Html,Xpath,Webdriver,我有一个html页面,上面有两个链接,具有类似的链接文本: “记录办公室”和“布鲁克林记录办公室” 如果使用此xpath,它将找到第二个链接: “//a[以(,'Brooklyn')开头]-到目前为止还不错 但是,如果使用相同的xpath但查找第一个链接(以单词“Office”开头),则该链接无效: “//a[以(,'Office')]开头]-“无法定位元素” 我尝试使用regex(“^Office”),但不起作用。 我试着用“contains”代替“starts with”,但也不起作用,因为

我有一个html页面,上面有两个链接,具有类似的链接文本:

记录办公室”和“布鲁克林记录办公室”

如果使用此xpath,它将找到第二个链接: “//a[以(,'Brooklyn')开头]-到目前为止还不错

但是,如果使用相同的xpath但查找第一个链接(以单词“Office”开头),则该链接无效: “//a[以(,'Office')]开头]-“无法定位元素”

我尝试使用regex(“^Office”),但不起作用。 我试着用“contains”代替“starts with”,但也不起作用,因为一个字符串是另一个字符串的子字符串

欢迎任何建议

编辑

我阅读了规范,我认为它会起作用:如果string1以string2开头,则返回true:以(string1,string2)开头

我模拟了一些xml,以便在在线测试仪中进行测试:

<?xml version="1.0"?>
    <note>
        <record>
          <a>Office</a>
          <a>Brooklyn Office</a>
        </record>
    </note>

办公室
布鲁克林办事处
我找不到通过“开始于”或“包含”指向第一个节点(“Office”)的方法问题解决了! 所以,这不起作用: //a[以(,'Office')开头]

这确实: /*/记录/a[以(,'Office')开头]

/a[text()='officeofrecords']
/a[text()='Brooklyn officeofrecords']


不要使事情过于复杂;)

仔细查看HTML,确认第一个链接文本实际上以“Office”开头,并且在开头没有空格或其他字符。文本已被验证。我还刚刚在一个在线xpath测试仪()中测试了它,它返回相同的结果;从开始,看起来并不像名字所暗示的那样。这里是规范:每当我看到行为似乎不符合规范,我都会努力找出我做错了什么。包括编写一个明确遵循规范的示例程序(即,构建自己的文档,然后对其应用XPath)。因为一个常用的库偶尔工作的可能性非常小,而且它是区分大小写的。确保您不是在寻找“Office”而不是“Office”,或者在检查子字符串之前应用translate()将所有内容移动到大写/小写。如果你想知道怎么做