【发布时间】:2018-10-16 13:13:14
【问题描述】:
我的应用程序中有以下 html 元素。
<td height="25">
<i>text1</i>
text2
</td>
我的目标是为我的测试脚本获取 td 元素。为此,我使用以下元素的 getText 方法获取了 td 标记内的文本。
xpath = "//td/i[contains(text(),'text1')]/parent::td"
该方法返回以下文本(以空格开头)
text1 text2
所以我将该文本复制到下面的 xpath 中以获取 td 元素。
xpath = "//td[contains(text(),'text1 text2')]"
但是我得到了上述元素的 NosuchElement 异常。这怎么可能?
注意:我不能在我的脚本中使用第一个 xpath,因为有几个像这样的 td 元素,它们有一个常见的 i 标记文本(文本 1)但不同的 td 标记文本(text2,text3...)
【问题讨论】:
-
试试
"//td[contains(normalize-space(),'text1 text2')]" -
@andersson 这工作谢谢!虽然我不同意这是一个重复的问题,但问题完全不同,并且“规范化空间”方法仅在 cmets 部分中提及。
-
使用
normalize-space()是解决此问题的方法。了解.和text()之间的区别将帮助您完全避免这个问题。