如何使用 Selenium 查找包含的元素

How to find an element which contains   using Selenium

<td>By Company&nbsp;&nbsp;</td>

我需要捕获上述元素的 xpath。我尝试了以下替代方案,但在 chrome 中似乎没有任何效果。你能建议任何其他选择吗?

"//td[normalize-space(text())='By Company\u00a0']"
"//td[normalize-space(text())='By Company\u00a0\u00a0']"
"//td[text()='By Company\u00a0']"
"//td[text()[normalize-space(.)='By Company\u00a0']]"
"//td[text()[normalize-space()='By Company\u00a0']]"

无视,仅按"By Company"定位

//td[contains(., 'By Company')]

定位元素:

<td>By Company&nbsp;&nbsp;</td>

您可以使用以下任一项 :

  • 使用normalize-space():

    "//td[contains(normalize-space(translate(., '\u00A0\u00A0', ' ')), 'By Company')]"
    
  • 使用text():

    "//td[text()='By Company\u00A0\u00A0']"
    
  • 使用contains():

    "//td[contains(., 'By Company\u00A0\u00A0')]"
    

但是,理想情况下,您可能希望避免 NO-BREAK SPACE 字符并使用以下任一解决方案:

  • 使用starts-with():

    "//td[starts-with(., 'By Company')]"
    
  • 使用contains():

    "//td[contains(., 'By Company')]"
    

参考

您可以在以下位置找到相关的详细讨论:

  • Using XPATH to search text containing &nbsp;

tl;博士

Unicode Character 'NO-BREAK SPACE' (U+00A0)