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可以進行參數設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM