24、Selenium + Python 实现 UI 自动化测试-文件下载

来源:互联网 发布:网络包装公司是干嘛的 编辑:程序博客网 时间:2024/06/02 07:13

文件上传姊妹篇,文件下载来了。

文件下载比较简单


一、看下文件下载元素

1、测试地址:http://sahitest.com/demo/saveAs.htm

2、下载按钮就是一个a标签,有点类似link

下面是测试地址的下载元素,可以看到是一个a标签


再看百度的链接,也是一个a标签,而这个链接是可以使用click方法进行跳转的。那下载元素使用click什么效果呢?



二、下载到默认目录:

from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get('http://sahitest.com/demo/saveAs.htm')driver.find_element_by_xpath('/html/body/a[1]').click()time.sleep(3)driver.quit()
一般会默认下载到目录:C:\Users\admin\Downloads

注意:一般需要加个等待,如果下载还未完成,直接关闭浏览器,文件是保存不成功的。


三、下载到指定目录:

以Chrome为例,Firefox相对繁琐一些,请参考灰蓝文章。

from selenium import webdriverchromedriver = "C:/Python36/chromedriver.exe"chromeOptions = webdriver.ChromeOptions()prefs = {"download.default_directory": "C:/Python36/"}chromeOptions.add_experimental_option("prefs", prefs)driver = webdriver.Chrome(executable_path=chromedriver, chrome_options=chromeOptions)driver.get('http://sahitest.com/demo/saveAs.htm')driver.find_element_by_xpath('/html/body/a[1]').click()driver.quit()

四、小结

文件下载操作不难,我们只是对a元素进行了一次点击。不过问题也恰恰在这里,如果对于链接来说,点击是否成功,我们可以根据跳转页面来判定。但是下载文件是否成功,则只能判断特定目录下是否有该文件了。(这显然不属于selenium的能力范畴了)

执行用例之前,先删除特定目录下的该文件名文件,然后执行用例,再判断有没有该文件(下载成功)。想想我们平时测试文件下载功能,应该是有两个验证点:第一,文件下载成功;第二,文件打开成功。而自动化目前看只能验证第一点。

阅读全文
0 0
原创粉丝点击