web-dev-qa-db-fra.com

Comment puis-je obtenir le href des éléments trouvés par le texte de lien partiel?

Utilisation de Selenium et du pilote Chrome Je fais:

links = browser.find_elements_by_partial_link_text('##') correspond à environ 160 liens.

Si j'essaye,

for link in links:
    print link.text

avec elle j'obtiens le texte de tous les liens:

##1
##2
...
##160

Les liens sont comme ceci:

<a href="1.html">##1</a>
<a href="2.html">##2</a>
...
<a href="160.html">##160</a>

Comment puis-je obtenir l'attribut href de tous les liens trouvés?

44
Eduard Florinescu

Il vous suffit d'appeler get_attribute sur chacun des liens que vous avez trouvés. Donc, ce qui suit devrait fonctionner:

links = browser.find_elements_by_partial_link_text('##')
for link in links:
    print link.get_attribute("href")

Cela devrait maintenant produire ce dont vous avez besoin.

69
Scott

ne réponse existante à une question similaire semble s'appliquer:

Assumer

votre HTML se compose uniquement de cette seule balise, alors cela devrait le faire:

String href = Selenium.getAttribute("css=a@href");

Vous utilisez la méthode DefaultSelenium#getAttribute() et passez un localisateur CSS, un symbole @ Et le nom de l'attribut que vous souhaitez récupérer. Dans ce cas, vous sélectionnez le a et obtenez son @href.

Donc, si le lien contient du texte "..blablabla ...", vous pouvez le trouver de cette façon:

Selenium.getAttribute("css=a:contains('..blablabla...')@href");
1
eugene.polschikov