Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.3k views
in Technique[技术] by (71.8m points)

xpath - How to find an element which contains   using Selenium

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

I need to capture xpath of the above element. I tried following alternatives, but nothing seems to be working in chrome. Can you please suggest any other option.

"//td[normalize-space(text())='By Companyu00a0']"
"//td[normalize-space(text())='By Companyu00a0u00a0']"
"//td[text()='By Companyu00a0']"
"//td[text()[normalize-space(.)='By Companyu00a0']]"
"//td[text()[normalize-space()='By Companyu00a0']]"
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

To locate the element:

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

You can use either of the following :

  • Using normalize-space():

    "//td[contains(normalize-space(translate(., 'u00A0u00A0', ' ')), 'By Company')]"
    
  • Using text():

    "//td[text()='By Companyu00A0u00A0']"
    
  • Using contains():

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

However, ideally you may like to avoid the NO-BREAK SPACE character and use either of the following solutions:

  • Using starts-with():

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

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

Reference

You can find a relevant detailed discussion in:


tl; dr

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...