¿Cómo puedo obtener el href de elementos encontrados por texto de enlace parcial?
Usando Selenium y el controlador de Chrome lo hago:
links = browser.find_elements_by_partial_link_text('##')
coincide con unos 160 enlaces.
Si lo intento,
for link in links:
print link.text
Con él obtengo el texto de todos los enlaces:
##1
##2
...
##160
Los enlaces son así:
<a href="1.html">##1</a>
<a href="2.html">##2</a>
...
<a href="160.html">##160</a>
¿Cómo puedo obtener el atributo href
de todos los enlaces encontrados?
2 answers
Simplemente necesita llamar a get_attribute en cada uno de los enlaces que ha encontrado. Así que lo siguiente debería funcionar:
links = browser.find_elements_by_partial_link_text('##')
for link in links:
print link.get_attribute("href")
Esto ahora debería generar lo que necesita.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-17 12:32:43
Una respuesta existente a una pregunta similar parece que podría aplicarse:
Asumir
Su HTML consiste únicamente en esa etiqueta, entonces esto debería hacerlo:
String href = selenium.getAttribute("css=a@href");
Utiliza el método
DefaultSelenium#getAttribute()
y pasa un localizador CSS, un símbolo@
y el nombre del atributo que desea obtener. En este caso, seleccione ela
y obtenga su@href
.
Así que si el enlace contiene "..blablabla..."texto entonces se puede encontrar en que camino:
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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:22