Jak Mogę uzyskać href elementów znalezionych przez częściowy tekst linku?
Używając Selenium i Sterownika Chrome robię:
links = browser.find_elements_by_partial_link_text('##')
pasuje do około 160 linków.
Jeśli spróbuję,
for link in links:
print link.text
Wraz z nim dostaję tekst wszystkich linków:
##1
##2
...
##160
Linki są takie:
<a href="1.html">##1</a>
<a href="2.html">##2</a>
...
<a href="160.html">##160</a>
Jak mogę uzyskać atrybut href
wszystkich znalezionych linków?
2 answers
Po prostu musisz wywołać get_attribute na każdym z znalezionych linków. Tak więc powinno działać:
links = browser.find_elements_by_partial_link_text('##')
for link in links:
print link.get_attribute("href")
To powinno teraz wypisać to, czego potrzebujesz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-17 12:32:43
Istnieje odpowiedź na podobne pytanie wydaje się, że może mieć zastosowanie:
Załóżmy
Twój HTML składa się wyłącznie z tego jednego znacznika, to powinno to zrobić:
String href = selenium.getAttribute("css=a@href");
Używasz metody
DefaultSelenium#getAttribute()
i przekazujesz lokalizator CSS, symbol@
oraz nazwę atrybutu, który chcesz pobrać. W tym przypadku wybieramya
i otrzymujemy@href
.
Więc jeśli link zawiera "..blablabla..."tekst wtedy można go znaleźć w tym sposób:
selenium.getAttribute("css=a:contains('..blablabla...')@href");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:22