如何使用selenium webdriver下载任何文件。

时间:2013-08-02 05:22:44

标签: selenium-webdriver

如何使用selenium webdriver下载任何文件。什么是在selenium webdriver中下载任何文件的逻辑

2 个答案:

答案 0 :(得分:1)

  1. 如果您指的是浏览器会显示的“任何”文件,即任何html文件,您只需要调用

    driver.getPageSource();
    
  2. 如果你的意思是“任何”文件,如“保存链接为”或类似的浏览器菜单,你运气不好,因为这会触发浏览器的操作系统驱动的下载文件选择器,这是不可能的由Selenium webdriver控制。

  3. 解决方案2。

    我认为你有两种选择:

    a)使用类似AutoIT ontop of selenium。这在短时间内变得非常难以控制,不可移植并且会使您的测试容易出错。

    b)更好的解决方案可能是在selenium之外下载文件。我在这里发现了一个不错的article describing the whole dilemma。它还包含一个很好的解决方案,如果需要下载,甚至可以处理cookie处理问题。

答案 1 :(得分:0)

实际上,使用网络驱动程序下载文件并不是一个好主意。我不认为你需要这个档案;在大多数情况下,它仅用于测试下载链接,为此您可以使用driver.find_element_by_tag_name("a")driver.find_elements_by_link_text("some text")driver.find_elements_by_partial_link_text("a");找到元素后,您只需click()并检查响应的URL是否实际应该是什么。

如果您有完全下载文件的目标,如果您让我知道,我很高兴。

修改

今天,我访问this page,我认为这会对您有所帮助,特别是this comment