4 votes

Selenium WebDriver get_attribute renvoie une valeur tronquée de l'attribut href lorsque la valeur comporte des entités

J'essaie de récupérer la valeur de l'attribut href d'un onglet d'ancre sur une page de mon application en utilisant Selenium Webdriver (Python) et le résultat renvoyé a une partie dépouillée.

Voici l'extrait HTML -

<a class="nla-row-text" href="stackoverflow.com/shopping/brands?search=kamera&amp;nm=Canon&amp;page=0" data-reactid="790">

Voici le code que j'utilise -

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Firefox()
driver.get("xxxx")

url_from_attr = driver.find_element(By.XPATH,"(//div[@class='nla-children mfr']/div/div/a)[1]").get_attribute("href")

url_from_attr_raw = "%r"%url_from_attr

print(" URL from attribute -->> " + url_from_attr)
print(" Raw string -->> " + url_from_attr_raw)

La sortie que j'obtiens est -

/shopping/brands?search=kamera&page=0

au lieu de -

/shopping/brands?search=kamera&amp;nm=Canon&amp;page=0 OR
/shopping/brands?search=kamera&nm=Canon&page=0

Est-ce à cause de la représentation de l'entité dans l'URL, car je vois que les parties entre les entités sont supprimées ? Toute aide ou indication serait la bienvenue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X