当前位置:   article > 正文

9、技巧之二:Firefox文件上传和自动下载 【Selenium+Python3网页自动化总结】_selenium 火狐

selenium 火狐

一、文件上传

找到上传的标签,然后把本地文件路径发上去就可以了,可以是相对路径或绝对路径。

<input type="file" name="upload">
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.common.keys import Keys
  4. browser = webdriver.Firefox()
  5. upload_button = browser.find_element(By.XPATH, "//input[@name='upload'][@type='file']")
  6. path_name="/home/user/Download/a.txt"
  7. upload_button.send_keys(path_name + Keys.RETURN)

二、文件自动下载

Content-Type,内容类型,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。ContentType属性指定响应的 HTTP内容类型,如果未指定 ContentType,默认为TEXT/HTML。Content-Type常见有四种类型,分别是:application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml。

第一步是指定网页的下载文件类型,有两种方法

如果是linux系统可以用命令:curl -I URL | grep "Content-Type"

或者用python代码:

  1. import requests
  2. content_type = requests.head('http://www.python.org').headers['content-type']
  3. print(content_type)

第二步是设置下载profile, 主要是下载路径,内容类型

把查到的Content-Type,设置到webdriver变量browser.helperApps.neverAsk.saveToDisk

  1. #假如content-Type是application/octet-stream
  2. import os
  3. from selenium import webdriver
  4. fp = webdriver.FirefoxProfile()
  5. fp.set_preference("browser.download.folderList",2)
  6. fp.set_preference("browser.download.manager.showWhenStarting",False)
  7. fp.set_preference("browser.download.dir", os.getcwd())
  8. fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")

第三步是使用selenium点击下载链接

  1. browser = webdriver.Firefox(firefox_profile=fp)
  2. browser.get("http://pypi.python.org/pypi/selenium")
  3. browser.find_element_by_partial_link_text("selenium-2").click()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/340132
推荐阅读
相关标签
  

闽ICP备14008679号