使用无头铬和硒(python)下载文件并不总是有效

时间:2020-07-08 18:16:03

标签: python selenium google-chrome-headless

所有人!

我正在使用Python,Selenium和无头Chrome浏览器来模拟单击按钮以下载PDF文件。

问题是,无头参数的相同代码段对于某些页面中的按钮效果很好,而对其他页面则不起作用。关于不起作用的页面,如果取消无头参数,则该页面正常工作。

这是我的配置:

path = path+'/'+CPF_LOGIN
chromeOptions = webdriver.ChromeOptions()
prefs = {"download.default_directory" : path, "download.prompt_for_download": False}
chromeOptions.add_argument("--headless") 
chromeOptions.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)

driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': path}}
command_result = driver.execute("send_command", params)

driver.get(URL)

这是当我使用一些javascript代码执行点击时

element = WebDriverWait(driver, 30).until(
        EC.element_to_be_clickable((By.XPATH, '/html/body/ion-app/ng-component/ion-nav/page-splitpane/ion-split-pane/ion-nav/page-copasa-segundaviadecontadetalhe/ion-content/div[2]/div/ion-card/ion-card-content/div/button/span'))
    )

    time.sleep(10)
    driver.execute_script("arguments[0].click();", element)

它不会引发任何异常。它只是不下载文件。同样,当我在另一页中尝试其他按钮时,具有无头chrome配置的相同代码也起作用。在此页面中,我面临的问题是,如果取消无头选项,则下载正常。

有什么想法吗?

谢谢。

0 个答案:

没有答案
相关问题