当您键入的内容突出显示该单词时,尝试使用Selenium在列表中查找特定条目

当您键入的内容突出显示该单词时,尝试使用Selenium在列表中查找特定条目,selenium,Selenium,DOM: 不匹配。 也不匹配。 比赛 问题: 我有一张物品清单。当我在文本框中键入内容时,它会删除不匹配的项目,并突出显示在a/span中匹配的项目。问题是,如果我键入与多个内容匹配的内容,我希望选择准确的字符串,而不是部分匹配的字符串(参见上面的DOM示例…理想的匹配应该是第三个) 那么,我唯一的希望是一个接一个地去寻找我的完美匹配,还是我遗漏了什么?你试图找到一个没有文本的span,内部span有一些突出显示的文本。下面是一个XPath选择器: <span class="item"&

DOM:

不匹配。
也不匹配。
比赛
问题: 我有一张物品清单。当我在文本框中键入内容时,它会删除不匹配的项目,并突出显示在a/span中匹配的项目。问题是,如果我键入与多个内容匹配的内容,我希望选择准确的字符串,而不是部分匹配的字符串(参见上面的DOM示例…理想的匹配应该是第三个)


那么,我唯一的希望是一个接一个地去寻找我的完美匹配,还是我遗漏了什么?

你试图找到一个没有文本的
span
,内部
span
有一些突出显示的文本。下面是一个XPath选择器:

<span class="item">Does not <span class="highlight">match</span>.</span>
<span class="item">Also not <span class="highlight">match</span>ing.</span>
<span class="item"><span class="highlight">match</span></span>

如果要查找精确的文本,可以使用
XPath
作为选择器来获取它<代码>//span[@class='item'][text()=“精确整串”]。这能满足您的要求吗?对不起,我花了一分钟的时间才弄清楚这里的确切要求,我想您应该检查一下外部span中没有这样的文本-
//span[@class='item'][不是(text())]/span[@class='highlight']][text()='match']
。我想这就是你想要的,所以我会发布一个答案。如果您可以发布一些代码,说明如何获取此元素,我可以对其进行更多的自定义。请注意,这将匹配内部
span
,如果您想要外部
span
,则必须使用前向轴或遍历树。如果你对此有任何疑问,请告诉我。这正是我想要的。非常感谢你。从来都不知道有这样的事(text())。很高兴听到!如果你愿意,请随意接受答案并投票:)
//span[@class='item'][not(text())]/span[@class='highlight'][‌​text()='match']