python - 在无头 Chrome 中下载文件,(python)
问题描述
我尝试了一切以在无头 chrome 中下载文件但没有任何效果,我使用的是 Chrome 版本 86.0.4240.75 而 ChromeDriver 版本:86.0.4240.22,我已经尝试了任何解决方案,但都没有奏效
download_dir = "/tmp/"
options.add_argument("--start--minimized")
options.add_experimental_option("prefs", {
"download.default_directory": download_dir,
"download.prompt_for_download": False,
})
browser.get(www.download.com)
browser.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_dir}}
command_result = browser.execute("send_command", params)
当我尝试在没有无头模式的情况下指定下载目录时,它给了我一个常见的下载 chrome 错误
解决方案
我的用例有点不同 - 我正在导航到一个页面并提交一个表单 - 但我正在使用以下代码进行工作下载:
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_prefs = {"download.default_directory": "/root/Downloads"}
chrome_options.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://...redacted...')
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//a[contains(text(),'ContractOp')]")))
submit_button = driver.find_element_by_xpath("//button[contains(.,'Submit')]")
submit_button.click()
# wait for download to finish
希望这对你有帮助。
推荐阅读
- reactjs - 反应测试 getByText 不适用于 p 元素
- python - 在数据框中组织收集的条目
- python - TypeError:字符串索引必须是复杂 json 数组中的整数
- cassandra - Cassandra 中的堆内存默认分配
- reactjs - 使用 react-cookie setCookie 的打字稿错误 - 类型 '{ [name: string]: any; }' 没有兼容的调用签名.ts(2349)
- dart - 如何使用 ngFor 遍历组件列表
- android - 具有嵌套 RecyclerViews 和双向滚动的 ScrollView
- uber-api - 如何访问车手 API 的服务器令牌?
- python - 负常数和运算符优先级
- hyperledger-fabric - 商业票据资产历史报告不会从 VSCode HLF 插件显示