python+selenium2.53.6学习(3)之图片上传

自动图片上传的几种方式

1. input框标准型,以百度网盘为例,上传的按钮是一个input标签,可以直接使用send_keys('绝对路径')


代码如下

# *-coding:utf-8-*-
from selenium import webdriver
import time
#自动加载插件或配置信息,其中UserName指代主机名,需要替换
prifile_directory = 'C://Users//UserName//AppData//Roaming//Mozilla//Firefox//Profiles//6xhkg22s.default'
profile = webdriver.FirefoxProfile(prifile_directory)
driver = webdriver.Firefox(profile)
# driver =webdriver.Firefox()       #不加载配置项的话使用这个启动,但后续代码需要增加登录功能
driver.get('https://pan.baidu.com/')
'''之前登录成功且设置自动登录,所以此处get url后为登录状态'''
time.sleep(3)
driver.refresh()        #此处浏览器刷新是因为有一个添加卡包的弹出框,刷新后消失
time.sleep(5)
driver.find_element_by_css_selector('#h5Input0').send_keys(u'C:\\Users\\Public\\Selenium2 Python自动化测试实战(第二版).pdf')

验证通过。其中注意到在注释中都有提及,可以上传图片、文件等,属于最基本的方式

2. 不是input框标准格式的,可以使用pyUserInput模块模拟键盘操作

# *-coding:utf-8-*-
from selenium import webdriver
import time
from pykeyboard import PyKeyboard
key = PyKeyboard()
#自动加载插件或配置信息,其中UserName指代主机名,需要替换
prifile_directory = 'C://Users//liaga//AppData//Roaming//Mozilla//Firefox//Profiles//6xhkg22s.default'
profile = webdriver.FirefoxProfile(prifile_directory)
driver = webdriver.Firefox(profile)
# driver =webdriver.Firefox()       #不加载配置项的话使用这个启动,但后续代码需要增加登录功能

driver.get('https://pan.baidu.com/')
time.sleep(3)
driver.refresh()
time.sleep(5)
driver.find_element_by_css_selector('#h5Input0').click()
time.sleep(3)
# key.type_string('C:\Users\Public\Pictures\Sample Pictures\Lighthouse.jpg')        #可以
key.type_string(u'C:\\Users\\Public\\Pictures\\Sample Pictures\\Selenium2 Python自动化测试实战(第二版).pdf')
time.sleep(2)
key.tap_key(key.enter_key

同样以百度云盘为例,但这里有一个问题就是如果路径中有中文,怎么上传都不行,暂时还没找到解决方法。

QQ邮箱上传图片代码如下

driver.get('https://mail.qq.com')
time.sleep(10)
driver.find_element_by_css_selector('#composebtn').click()
print '1. send_message click'
time.sleep(3)
driver.switch_to.frame('mainFrame')
time.sleep(3)
driver.find_element_by_name("UploadFile").send_keys("D:\\1.png")

初次之外还有 sendKeys包、autoit,不过没有去尝试,这里就不介绍了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值