我正在使用python-selenium和Chrome 59,并试图自动化一个简单的下载序列.当我正常启动浏览器时,下载工作正常,但是当我在无头模式下这样做时,下载不起作用.
# Headless implementation
from selenium import webdriver
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument("headless")
driver = webdriver.Chrome(chrome_options=chromeOptions)
driver.get('https://www.mockaroo.com/')
driver.find_element_by_id('download').click()
# ^^^ Download doesn't start
Run Code Online (Sandbox Code Playgroud)
# Normal Mode
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.mockaroo.com/')
driver.find_element_by_id('download').click()
# ^^^ Download works normally
Run Code Online (Sandbox Code Playgroud)
我甚至尝试添加默认路径:
prefs = {"download.default_directory" : "/Users/Chetan/Desktop/"}
chromeOptions.add_argument("headless")
chromeOptions.add_experimental_option("prefs",prefs)
Run Code Online (Sandbox Code Playgroud)
添加默认路径在正常实现中起作用,但无头版本中仍存在相同的问题.
如何在无头模式下启动下载?
我使用Robot Framework.
在我的HTML页面上,我有一个简单的按钮.单击它时,它会下载pdf文件.
如果文件已下载,我如何查看Robot Framework?
TKS
我找到了一个解决方案,请转到@ ombre42:
${SERVER} ${SERVER_DEV}
${NAME} Robot
${FILE_NAME} Robot.pdf
${CLASS_NAME} in
${DOWNLOAD_DIRECTORY} C:\\robot_download
Scenario: User can download
Create Directory ${DOWNLOAD_DIRECTORY}
${CHROME_OPTIONS}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
${disabled} Create List Chrome PDF Viewer
${prefs} Create Dictionary download.default_directory=${DOWNLOAD_DIRECTORY} plugins.plugins_disabled=${disabled}
Call Method ${CHROME_OPTIONS} add_experimental_option prefs ${prefs}
Create Webdriver Chrome chrome_options=${CHROME_OPTIONS}
Goto ${SERVER}
Click Element ${NAME}
Wait Until Element Is Visible css=div.${CLASS_NAME} 8
Page Should Contain ${NAME}
Set Selenium Speed 10s
Download PDF ${NAME}
File Should Exist C:\\robot_download\\${FILE_NAME}
Run Code Online (Sandbox Code Playgroud)