selenium.webdriver 下载文件操作的配置

Chrome

from selenium import webdriver
from time import sleep
# from selenium.webdriver.support import expected_conditions as ec
# from selenium.webdriver.support.wait import WebDriverWait
# from selenium.webdriver.common.by import By
import os

# 配置下载路径
options = webdriver.ChromeOptions()
# 0表示禁止弹出下载窗口, 下载目录使用os.getcwd()设置当前目录作为保存位置
prefs = {'profile.default_content_settings.popups': 0,
         'download.default_directory': os.getcwd()}
options.add_experimental_option('prefs', prefs)

with webdriver.Chrome(options=options) as driver:

    driver.get('https://www.onlinedown.net/soft/5.htm')
    driver.maximize_window()
    driver.implicitly_wait(10)
    # 滚动条到底,加载网页内容
    driver.execute_script('window.scrollTo(100, document.body.scrollHeight);')
    sleep(5)
    # 这里driver 点击元素操作有点问题 所以使用的JS做点击下载的操作
    ele = driver.find_element_by_link_text('通用网络下载')
    driver.execute_script('arguments[0].click();', ele)
    sleep(20)

Firefox

from selenium import webdriver
from time import sleep
import os

fp = webdriver.FirefoxProfile()
# 设置为0,表示下载到默认路径;设置为2,表示下载到指定路径
fp.set_preference('browser.download.folderList', 2)
# 设置下载的保存位置,使用os.getcwd()获取当前路径
fp.set_preference('browser.download.dir', os.getcwd())
# 设置下载时不提示是否要开始下载
fp.set_preference('browser.download.manager.showWhenStarting', False)
# 指定要下载的文件类型,可以去 HTTP Content-type对照表查询,这里指定的是.exe文件
fp.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/octet-stream')

with webdriver.Firefox(firefox_profile=fp) as driver:

    driver.get('https://www.onlinedown.net/soft/5.htm')
    driver.maximize_window()
    driver.implicitly_wait(10)
    # 滚动条到底,加载网页内容
    driver.execute_script('window.scrollTo(100, document.body.scrollHeight);')
    sleep(5)
    # 这里driver 点击元素操作有点问题 所以使用的JS做点击下载的操作
    ele = driver.find_element_by_link_text('通用网络下载')
    driver.execute_script('arguments[0].click();', ele)
    sleep(20)

HTTP Content-type对照表查询

Firefox在浏览器地址栏输入about:config可以进行参数设置

猜你喜欢

转载自www.cnblogs.com/milesma/p/12333308.html