问题
<td>By Company </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']]"
回答1:
To locate the element:
<td>By Company </td>
You can use either of the following xpath:
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
tl; dr
Unicode Character 'NO-BREAK SPACE' (U+00A0)
回答2:
Ignore it, locate by "By Company" only
//td[contains(., 'By Company')]
来源:https://stackoverflow.com/questions/59624749/how-to-find-an-element-which-contains-nbsp-using-selenium