如何使用 selenium webdriver 下载任何文件。在 selenium webdriver 中下载任何文件的逻辑是什么
2 回答
如果您的意思是浏览器会显示的“任何”文件,即任何 html 文件,您只需要调用
driver.getPageSource();
如果您的意思是“链接另存为”或类似浏览器菜单中的“任何”文件,那么您就不走运了,因为这会触发无法由 Selenium webdriver 控制的浏览器的操作系统驱动的下载文件选择器。
2的解决方法。
我认为你有两个选择:
a) 在 selenium 上使用 AutoIT 之类的东西。这在短时间内变得非常难以控制,不可移植并且会使您的测试容易出错。
b)更好的解决方案可能是在硒之外下载文件。我在这里找到了一篇描述整个困境的好文章。它还包含一个很好的解决方案,如果下载需要,它甚至可以处理 cookie 处理。
实际上,使用 web-driver 下载文件并不是一个好主意。我认为您不需要该文件;在大多数情况下,它只是用于测试下载链接,为此您可以使用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 是否真的是它应该是的。
不过,如果您有完全下载文件的目标,如果您让我知道,我会很高兴。
编辑: