簡體   English   中英

Selenium Python - 下載 button.click() 不再工作

[英]Selenium Python - download button .click() no longer working

我有以下代碼,直到最近才有效 - 目的是從代碼中顯示的站點下載一些歷史數據:

import os
import time
import pandas as pd
from datetime import datetime
from selenium import webdriver

# Set option variables for using ChromeDriver

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable_dev-shm-usage')

options.add_experimental_option("prefs", {
  "download.default_directory": r"\\filepath\foldernamefordownload",
  "download.prompt_for_download": False,
  "download.directory_upgrade": True,
  "safebrowsing.enabled": True
})

# Set up ChromeDriver and open path

wd = webdriver.Chrome(r'filepath\chromedriver.exe', options=options)

solar_path = 'https://www.solar.sheffield.ac.uk/pvlive/'
wd.get(solar_path)
time.sleep(10)

# Click on data download ribbon

data_dwnload1 = wd.find_element_by_id('dataDownloadPanelTitle')
data_dwnload1.click()
time.sleep(5)

# Download data

data_dwnload2 = wd.find_element_by_id('download-csv-button')
data_dwnload2.click()
time.sleep(30)

wd.close()
del solar_path

問題是這不再有效 - 沒有下載。 我在這里想念什么? 代碼仍在運行(本節之后的代碼僅在嘗試查找不再存在的下載文件時才會中斷)。

任何幫助將非常感激。

使用顯式等待簡化了一點,它正在工作。 請檢查。 time.sleep(30)似乎是可選的。 您可以等待一段時間然后關閉,但如果您想等待 30 秒,這是您的選擇。

wd = webdriver.Chrome(r'filepath\chromedriver.exe', options=options)
solar_path = 'https://www.solar.sheffield.ac.uk/pvlive/'
wd.get(solar_path)
time.sleep(10)
# Click on data download ribbon
WebDriverWait(wd, 20).until(EC.visibility_of_element_located((By.ID, 'dataDownloadPanelTitle'))).click()
# Download data
WebDriverWait(wd, 20).until(EC.visibility_of_element_located((By.ID, 'download-csv-button'))).click()
time.sleep(30)

wd.close()

下載的文件快照:單擊此處獲取文件快照

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM