Как я могу получить href элементов, найденных с помощью частичного текста ссылки?
Использование Selenium и драйвера Chrome я делаю:
links = browser.find_elements_by_partial_link_text('##')
соответствует около 160 ссылок.
Если я попробую,
for link in links:
print link.text
с этим я получаю текст всех ссылок:
##1
##2
...
##160
Ссылки такие:
<a href="1.html">##1</a>
<a href="2.html">##2</a>
...
<a href="160.html">##160</a>
Как я могу получить атрибут href
всех найденных ссылок?
Ответы
Ответ 1
Вам просто нужно вызвать get_attribute на каждой из найденных вами ссылок. Таким образом, следующее должно работать:
links = browser.find_elements_by_partial_link_text('##')
for link in links:
print link.get_attribute("href")
Теперь вы должны указать, что вам нужно.
Ответ 2
Существующий ответ на похожий вопрос кажется, что он может применяться:
Предположим, что
ваш HTML состоит только из одного тега, тогда это должно сделать это:
String href = selenium.getAttribute("[email protected]");
Вы используете метод DefaultSelenium#getAttribute()
и передаете в локатор CSS, символ @
и имя атрибута, который хотите извлечь. В этом случае вы выбираете a
и получаете его @href
.
Итак, если ссылка содержит текст "..blablabla...", вы можете найти ее таким образом:
selenium.getAttribute("css=a:contains('..blablabla...')@href");