如何从selenium python

时间:2017-06-12 19:59:44

标签: python selenium

我想从网站下载CSV文件。这就是我使用selenium的click()命令的原因。

 image description here

元素具有以下结构

enter image description here

 csvList = browser.find_elements_by_class_name("csv")
    for l in csvlist:
           if 'error' not in l.text and 'after' not in l.text:
               #get link here
               l.click()

问题

我的问题是在下载之前我们如何从元素中获取下载链接?图中黑色箭头指向的链接。

当我使用 l.get_attribute('href')时,它会给我无。

2 个答案:

答案 0 :(得分:1)

div没有href属性。它的父母是" a"标签呢。我会用xpath。

By.XPath("//a[/div[@class='csv']]")

答案 1 :(得分:1)

对于l中的每个元素csvList,通过xpath获取父元素,然后获取该元素的href

csvList = browser.find_elements_by_class_name("csv")
for l in csvlist:
       if 'error' not in l.text and 'after' not in l.text:
           currentLink = l.find_element_by_xpath("..")
           href = currentLink.get_attribute("href")

注意:如果你在这个循环中执行了.click()并且链接将你带到一个新页面,那么在第一个之后每次点击都会得到一个StaleElementException。在这种情况下,提取每个href并保存到集合中。然后导航到集合中的每个href(URL)。