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()

 

posted @ 2020-03-15 19:23  小虫虫大虫虫  阅读(285)  评论(0编辑  收藏  举报