問題描述:
代碼在普通模式下能夠下載到文件,但是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下必須是 \ 而不是 /