Как я могу найти этот элемент с помощью xpath? (имя класса не уникальное).

<a class="my-action" href="/my/path/page.html"></a>

Пытался: //a[@href='/my/path/page.html'], но не удалось. Что случилось?

5
membersound 21 Дек 2013 в 00:50

2 ответа

Лучший ответ

Вы можете использовать contains как

//a[contains(@href, 'path/page.html')]

При необходимости добавьте . в XPath, что означает запуск с текущего узла, а не глобально.

.//a[contains(@href, 'path/page.html')]

Для Selenium лучше использовать CSS Selector в вашем случае.

a[href*='path/page.html']

Однако вам нужно предоставить дополнительную информацию о том, почему ваш XPath не работает. Отправьте сообщение об исключении, пожалуйста. Возможно, проблема не в частичном href в XPath или нет. Избегайте проблемы XY.

9
Community 20 Мар 2017 в 10:29

example = browser.find_element_by_class_name("my-action"[href*='my']")

0
Nicholas Thompson 22 Апр 2019 в 00:21