使用selenium通过firefox下载文件时捕获下载链接

时间:2014-03-15 08:23:10

标签: python selenium selenium-webdriver

from selenium import webdriver
from selenium.webdriver.common.keys import Keys            
browser = webdriver.Firefox()
browser.get('www.example.com\mysite\')
browser.find_elements_by_xpath('//input[@value="Download"]')[0].click()

在这个阶段我的程序开始下载我想要的文件,但如果我检查实际下载 在firefox中下载文件时链接,例如:

 www.example.com\mysite\fsdgw?downloadid=werwqd422.jpg

所以,我想从firefox收集实际的下载链接,因为我想使用下载管理器为多个高速文件下载它。

是否可以获得下载链接?

1 个答案:

答案 0 :(得分:0)

我会在Java中这样做。

如果我的HTML是这样的:

<tr>
  <td>
    <a href="http://website.com/music/file1.mp3">
    </td>
  </tr>
<tr>
  <td>
    <a href="http://website.com/music/file2.mp3">
    </td>
  </tr>

我的硒代码是:

    List<WebElement> downloadLinks = driver.findElements(By.tagName("a"));
    PrintWriter writer = new PrintWriter("links.txt", "UTF-8");

    for(int i=0;i<downloadLinks.size();i++)
    {
      writer.writeLine(downloadLinks.get(i).getAttribute("href"));
    }

    writer.close();

然后我将使用该文本文件在我的下载管理器中启动一个突发下载会话。现在,它将取决于您的下载管理器是否接受/导入txt文件以下载多个文件。如果需要,您可以写入csv文件。我已经提出了一个非常基本的例子。 请注意<a>标记下的查找元素仅在href属性中包含实际下载源时才有效。否则无济于事。