26

我正在尝试从网页中检索数据,下面有 html

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

我的目标是解析“#/word/1/” 我所做的是

        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

但输出是

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

我尝试了很多方法,似乎无法在目标类中获取“a href”的内容。

我真的不想做的是获取页面的源代码,然后进行字符串搜索,这看起来很愚蠢......

无论如何要得到那个?

4

3 回答 3

58

据我所知,您可以通过搜索子元素来获取 href

div = self.driver.find_element_by_class_name('someclass')
div.find_element_by_css_selector('a').get_attribute('href')
于 2013-10-29T17:03:20.677 回答
10

这应该为你做:

self.driver.find_element_by_css_selector('.someclass a').get_attribute('href')
于 2013-10-29T17:04:13.047 回答
1

如果您从 find_element_by_id 或classnamexpath搜索特殊标签 ,然后使用get_attribute('href')

在此示例中,打印标签的所有属性

   ids = self.driver.find_elements_by_xpath('//*[@href]')
   for id in ids:
        print(id.get_attribute('href'))
       
于 2020-09-10T10:55:59.037 回答