Hyperlink 使用XPath:在单元格3行中查找链接

Hyperlink 使用XPath:在单元格3行中查找链接,hyperlink,cell,xpath,Hyperlink,Cell,Xpath,我在一个表中有多行,其中一行是我想自动单击的链接。作为我的起点,我有最后一个实例,一行包含文本“测试问题?”: 身份证件: 1416 编辑/批准 忽略 电子邮件 姓名: 提交人姓名 打开 不适用 地点: 提交者位置 成员: 不 问题案文: 试题? 答复1案文: 答复2案文: 身份证件: 1417 编辑/批准 忽略 电子邮件 姓名: 提交人姓名 打开 不适用 地点: 提交者位置 成员: 不 问题案文: 试题? 答复1案文: 答复2案文: 所以,//tr[td

我在一个表中有多行,其中一行是我想自动单击的链接。作为我的起点,我有最后一个实例,一行包含文本“测试问题?”:

身份证件: 1416

编辑/批准 忽略 电子邮件 姓名: 提交人姓名

打开 不适用 地点: 提交者位置

成员: 不

问题案文: 试题? 答复1案文:

答复2案文:

身份证件: 1417

编辑/批准 忽略 电子邮件 姓名: 提交人姓名

打开 不适用 地点: 提交者位置

成员: 不

问题案文: 试题? 答复1案文:

答复2案文:

所以,//tr[td='Test Question?'][last()]类似于“问题文本:测试问题?”

不管怎样,再往上三行是一行,里面有很多链接。我希望xpath指向第一个单元格中的链接

现在我尝试使用position(),但是像//tr[position()=(//tr[td='Test Question?']][last()][position()]-3]这样的东西不是正确的方法,我找不到任何好的例子

塔克斯


Dave

至少可以说,这将是一个非常复杂的xpath,但您将从
祖先::tr
开始,然后是前面的兄弟姐妹。通过隧道到达
,然后穿过三个(我想你需要在这里参考
位置()
),然后以正常的方式从那里向下到达你的目标


编辑:比我想象的容易,前面的兄弟姐妹倒计时

./ancestor::tr/preceding-sibling::tr[3]/td[1]/a

那么,如果//祖先::tr[td='Test Question?'][last()]/previous sibling::tr[3]/td[1]/a获得了所有的“Test Question?”链接,那么我如何获得最后一个链接?(当我使用XPather时,//祖先::tr[td='Test Question?'][last()]/previous sibling::tr[3]/td[1]/a获得了与//祖先::tr[td='Test Question?']/previbling::tr[3]/td[1]相同的东西)/a所以你可能已经回答了这个问题,而我只是在验证时遇到了麻烦。)我以为你已经有了起始节点?尽管如此,你还是把事情弄得太复杂了。分离查找种子的问题,并将前缀添加到上面。试试这个://td[self::td='Test Question?']/祖先::tr/previous sibling::tr[3]/td[1]/yes,//祖先::tr[td='Test Question?'][last()]/previous sibling::tr[3]/td[1]/a可以工作。塔克斯