How to find an element which contains   using Selenium

robotframework, selenium, xpath, xpath-1.0

Solution

To locate the element:

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

You can use either of the following xpath:

Using `normalize-space()`:

"//td[contains(normalize-space(translate(., '\u00A0\u00A0', ' ')), 'By Company')]"

Using `text()`:

"//td[text()='By Company\u00A0\u00A0']"

Using `contains()`:

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

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:

- Using XPATH to search text containing `&nbsp;`

tl; dr

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

Problem

``` <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 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']]" ```

Original source

Related problems