我试图根据其文字来定位的元素(我知道,我知道),因为存在包含一些相同的话两个标签,我必须能够通过某些词语找到它,但确保它不包含其他词语。最重要的是,它需要不区分大小写。Xpath的文本()包含和不包含其他文本,不区分大小写
例子:我试图找到并单击与文本的某些文本相关的复选框,但没有某些文本了。 id和名字,以及顺序(有时'有些文字'是第一个,有时'Some Text Too'是第一个)会因页面而异,具体取决于显示的内容,所以我不能依靠它来找到正确的复选框。
<td style="padding-bottom: 2px"><input id="c_58" style="padding-left: 3px; background-color: rgb(255, 255, 255);" name="c_58" value="[dbo].[table].[Field]" type="checkbox"><label for="c_59" style="padding-left: 3px;">Some Text Too</label></td>
<td style="padding-bottom: 2px"><input id="c_59" style="padding-left: 3px; background-color: rgb(255, 255, 255);" name="c_59" value="[dbo].[table].[Field]" type="checkbox"><label for="c_59" style="padding-left: 3px;">Some Text</label></td>
我有什么的作品: //*[*[text()[contains(translate(., 'SOME TEXT','some text'), 'some text')]]]
此找到的元素与'Some Text'
,但也发现有'Some Text Too'
的元素。因为有时网页在不同顺序的元素呈现,我需要能够保证我只是发现'Some Text'
而不是'Some Text Too'
我曾尝试: //*[*[text()[contains(translate(., 'SOME TEXT','some text'), 'some text') and not(contains(translate(., 'TOO', 'too'), 'too'))]]]
但就是没有定位任何元素这一页。
我的路径比这还多 - 因此额外的级别是必需的。我没有包含它,因为这个元素是我的锚,所以一旦我能找到它,我可以找到我需要的。但仅供参考,删除多余的方括号不会改变我的结果。仍未找到没有附加文字的元素。 – user1199956
您是否介意通过包含您正在使用的文档样本以及您希望捕获的预期输出来编辑您的问题? – Abdou
我只是测试'// * [文本()[含有(翻译( 'SOME TEXT', '一些文本'), '一些文本'),而不是(包含(翻译(。, 'TOO',“太'),'too'))]]''在Firefox的['firepath'](https://addons.mozilla.org/en-US/firefox/addon/firepath/)上使用您的html脚本,它指向没有“太”的文字。必须有别的东西导致你现在遇到的问题。 – Abdou