[英]Downloading files with python using selenium on headless firefox (Ubuntu)
我试图找出一种方法让这个脚本通过无头 Firefox 下载文件。 我没有看到它出现在我的下载目录中并且我没有收到任何错误,有人可以帮我弄清楚如何实际下载这个文件吗? 当不在无头模式下完成时,此代码会定期工作。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
import requests
from selenium.webdriver.firefox.options import Options as FirefoxOptions
options = FirefoxOptions()
options.add_argument("--headless")
driver = webdriver.Firefox(options=options)
driver.get('website')
sleep(2)
driver.maximize_window()
search = driver.find_element_by_id('UserName')
search.send_keys('username')
search = driver.find_element_by_id('Password')
search.send_keys('password')
search.send_keys(Keys.RETURN)
sleep(4)
driver.get('website')
sleep(8)
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "ej2-datetimepicker_0_input"))
)
element.click
link = driver.find_element_by_id('ej2-datetimepicker_0_input')
link.click()
except:
driver.quit()
driver.implicitly_wait(3)
date = driver.find_element_by_xpath('//*[@id="ej2-datetimepicker_0_input"]')
date.clear()
date.send_keys('7/1/2020 - 8/24/2020')
sleep(3)
WebDriverWait(driver, 8).until(EC.element_to_be_clickable((By.XPATH, "//button[@mat-button]/span[@class='mat-button-wrapper']//span[text()='Excel']"))).click()
sleep(1)
print('done')
我也遇到了同样的问题。 就我而言,我正在下载 pdf。 您可以尝试禁用弹出下载对话框吗? 以下对我有用。
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
s = Service('./driver/geckodriver.exe')
download_dir = "download directory"
options = Options()
options.set_preference("pdfjs.disabled", True)
options.set_preference("browser.download.folderList", 2)
options.set_preference("browser.download.manager.useWindow", False)
options.set_preference("browser.download.dir", download_dir)
options.set_preference("browser.helperApps.neverAsk.saveToDisk",
"application/pdf, application/force-download")
options.add_argument("--headless")
options.add_argument('--disable-gpu')
driver = webdriver.Firefox(service=s, options=options)
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.