我想从网站下载CSV文件。这就是我使用selenium的click()
命令的原因。
元素具有以下结构
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')时,它会给我无。
答案 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)。