В вашем примере HTML единственный экземпляр «2019» находится в теге <h2>
, а не в привязке (<a>
).Поскольку find_element_by_partial_link_text()
ищет только теги привязки, он не найдет его.
Вы можете выполнить поиск через XPath, чтобы найти произвольный элемент с помощью частичного текста.Примерно так:
all_matches = driver.find_elements_by_xpath("//*[text()[contains(., '2019')]]")
all_matches[0].click()
Что XPath говорит:
- Поиск всех элементов (
*
) - Посмотрите на каждый предмет
text()
по очереди - Если это
text()
contains()
строка "2019", добавьте ее в набор совпадений.
И, конечно, мы нажимаем только на первый соответствующий элемент.