Selenium Xpath使用gettext()方法中的值不起作用

时间:2018-10-16 13:13:14

标签: selenium-webdriver xpath

我的应用程序中包含以下html元素。

  <td height="25">
&nbsp;&nbsp;&nbsp; 
 <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标签文本(文本2,text3 ...)

1 个答案:

答案 0 :(得分:0)

硒捕获Contracts,其中包含元素和所有子元素文本。在这种情况下,WebElement元素文本是<td>&nbsp;&nbsp;&nbsp;text1的组合,因此,当您使用第一个表达式获取文本时,将得到{{1} }。但是,由于text2代表text1 text2元素,因此DOM中没有文本text1 text2的元素。试试

text1