web-dev-qa-db-fra.com

sélénium comment obtenir le contenu de href dans une classe ciblée

J'essaie de récupérer les données de la page Web a le html ci-dessous

       <div class="someclass">
       <p class="name"><a href="#/Word/1/">helloworld</a></p>
       </div>

Mon objectif est d'analyser "#/Word/1 /" Ce que j'ai fait est

        target = self.driver.find_element_by_class_name('someclass')
        print target
        print target.text
        print target.get_attribute("css=a@href")
        print target.tag_name

mais les sorties sont

 <Selenium.webdriver.remote.webelement.WebElement object at 0x10bf16210>
 helloworld
 None
 div 

J'ai essayé tant de façons, il semble qu'il n'y ait aucun moyen d'obtenir le contenu de 'a href' dans la classe ciblée.

Je ne veux vraiment pas faire est d'obtenir le code source de la page, puis faire une recherche de chaîne, cela semble stupide ....

de toute façon pour l'obtenir?

21
runcode

Pour autant que je sache, vous pouvez obtenir le href en recherchant à travers les éléments enfants

div = self.driver.find_element_by_class_name('someclass')
div.find_element_by_css_selector('a').get_attribute('href')
39
aychedee

Cela devrait le faire pour vous:

self.driver.find_element_by_css_selector('.someclass a').get_attribute('href')
7
Andrew