Как найти элемент, который содержит с помощью Selenium - PullRequest
2 голосов
/ 07 января 2020
<td>By Company&nbsp;&nbsp;</td>

Мне нужно захватить путь к указанному выше элементу. Я попробовал следующие варианты, но, похоже, ничего не работает в 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']]"

Ответы [ 2 ]

2 голосов
/ 07 января 2020

Чтобы найти элемент:

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

Вы можете использовать любой из следующих :

  • Использование 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')]"
    

Ссылка

Соответствующее подробное обсуждение можно найти в:


tl; dr

Unicode-символ 'NO-BREAK SPACE' (U + 00A0)

1 голос
/ 07 января 2020

Игнорировать, найти только по компании

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