selenium headless模式下 文件下載失敗


問題描述:

  代碼在普通模式下能夠下載到文件,但是headless模式打開后就出現文件下載失敗情況,也沒有報錯信息。

解決方法:

示例代碼

#!/usr/bin/python
# _*_ coding:utf-8 _*_
# Author:xiaoshubiao
# Time : 2018/8/14 14:57
import time
from selenium.webdriver import Chrome
from selenium import webdriver
download_location = 'C:\\Users\\Administrator\\Downloads'
chrome_options = webdriver.ChromeOptions()
prefs = {'download.default_directory': download_location,
         'download.prompt_for_download': False,
         'download.directory_upgrade': True,
         'safebrowsing.enabled': False,
         'safebrowsing.disable_download_protection': True}

chrome_options.add_experimental_option('prefs', prefs)
chrome_options.add_argument("--headless")
driver = Chrome(chrome_options=chrome_options)
driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')

params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_location}}
command_result = driver.execute("send_command", params)
print("response from browser:")
for key in command_result:
    print("result:" + key + ":" + str(command_result[key]))

# 這里是隨便選了一個可以下載的連接,無心騷擾。
driver.get("http://www.yundama.com/apidoc/YDM_SDK.html")
clone_box = driver.find_element_by_xpath('/html/body/div[4]/div[2]/div/p[11]/a')
clone_box.click()
time.sleep(10)
driver.quit()

需要注意的有兩點:

1、你的chrome瀏覽器要60以上。

2、注意下載路徑,wins下必須是 \  而不是 /


免責聲明!

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



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