文件上传,也是一个比较很常见的功能之一,这也是在实际测试过程中,很麻烦的一件事情。
前几天看过一个大神的博客,非常详细的介绍了各个文件上传的方法,本来想自己总结一下,在写出来,但是由于时间的原因,这里就先介绍:input类型文件上传
上传按钮类型大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js、flash等实现,标签非input
Input类标签:
# coding = utf-8 from selenium import webdriver from selenium.webdriver.common.by import By import time driver = webdriver.Chrome() url = "http://www.sahitest.com/demo/php/fileUpload.htm" driver.get(url=url) #定位到上传的按钮 upload=driver.find_element(By.ID,"file") #使用send_keys来上传文件 upload.send_keys("D:\\1.jpg") vla = upload.get_attribute("value") print(vla) time.sleep(3) driver.quit()
非input型标签
一般情况,我们都是使用input标签进行上传文件。而非input型上传,大体上有以下几种解决方案:
autoIT,借助外力,我们去调用其生成的au3或exe文件。
Python pywin32库,识别对话框句柄,进而操作
SendKeys库
keybd_event,跟3类似,不过是模拟按键,ctrl+a,ctrl+c, ctrl+v…
关于非input型标签代码,我会针对每一篇进行介绍,然后会把链接地址放到这里,这样也有助于我们的分开学习。
如果小伙伴有更好的意见以及建议,可以留言,我们共同学习!!
而非input型上传,由于时间的关系,我稍后会陆续更新