利用Selenium Webdriver 2.0 实现通过Web上传文件

来源:互联网 发布:我的世界凋零风暴js 编辑:程序博客网 时间:2024/05/24 02:35
在Web自动化测试实践中,常常会遇到需要通过Web (基本都是依靠form元素) 上传文件到后台的功能。这个功能的特点在于,不仅需要浏览器、document对象的参与,还需要借助于Windows的模式窗口。说到这里,作为我这样的初学者,就会犯难了,怎样才能操作Windows的这个弹出模式窗口呢? Selenium Webdriver有对应的API可以实现我的愿望吗?于是,我会想当然的去遍历Selenium Webdriver的API文档。结果可想而知,高手们要笑了。


如果了解HTML Form表单对象的工作原理,上面的这个问题就很容易有思路。所以做Web自动化测试,不懂web,将会事倍功半。


Form表单里面的文件选择控件<input type="file">,实际也是个可输入的元素,跟<input type="text">元素不同点,从直观上讲,前者没有输入框,后者有。给人的感觉是只有后者才能传递文本或字符,前者不能。so, 只看表面,就掉坑里去了。


要解决本文开始的那个问题,其实跟<input type="text">类似,就是直接把文件地址付给<input type="file">元素,然后submit。


以Selenium Webdriver + python 为例:
Select the <input type="file"> element and call the send_keys() method passing the file path, either the path relative to the test script, or an absolute path. Keep in mind the differences in path names between Windows and Unix systems.
--摘自http://selenium-python.readthedocs.org/faq.html (No. 8.5)


要注意的是,文件路径问题,在windows下,路径一定要这样:c:\\test\\upload\\file,而不能这样写:c:/test/upload/file。


试试看撒!!
0 0
原创粉丝点击