selenuim - webdriver 文件上传/下载
1.文件上传
- send_keys() 将本地文件的路径作为一个值放在input标签中,通过form表单将这个值提交给服务器
点击百度首页搜索框右侧的照相机按钮,从本地上传图片元素,上传一张图片
<input type="file" class="upload-pic" value="上传图片"> 该元素是一个input标签的,类型为file的元素
1 from selenium import webdriver 2 import time 3 4 driver = webdriver.Chrome() 5 driver.maximize_window() 6 driver.implicitly_wait(10) 7 driver.get('http://www.baidu.com') 8 9 driver.find_element_by_class_name('soutu-btn').click() # 点击照相机按钮 10 time.sleep(3) 11 driver.find_element_by_class_name('upload-pic').send_keys('F:\download.jpg') # 点击上传文件按钮,上传文件 12 13 time.sleep(10) 14 driver.quit()
2. 文件下载
例1:
下载微信安装包,如下:
1 import requests 2 3 4 def request_zip(url): 5 r = requests.get(url) # 请求链接后保存到变量r中 6 with open("weixin.exe", 'wb') as f: 7 f.write(r.content) # r.content写入至文件 8 9 10 request_zip('http://down10.zol.com.cn/20200204/QQPCDownload1100110708.exe')
例2:
下载selenium,如下图:
1 import os 2 from selenium import webdriver 3 4 5 options = webdriver.ChromeOptions() 6 prefs = { 7 'profile.default_content_settings.popups': 0, # 0表示:禁止弹出下载窗口 8 'download.default_directory': os.getcwd() # 设置文件下载路径 os.getcwd()获取当前目录 9 # 'download.default_directory': r'D:\zhangyang\PycharmProjects\test2' 10 } 11 options.add_experimental_option('prefs', prefs) 12 13 driver = webdriver.Chrome(chrome_options=options) # 将options传入浏览器 14 driver.get('https://pypi.org/project/selenium/#files') 15 16 driver.find_element_by_link_text('selenium-3.141.0.tar.gz').click()