Selenium点击href="#"元素下载CSV文件失败问题求助
解决Zerodha Kite持仓CSV下载的Selenium点击问题
问题背景
尝试在Zerodha Kite网站通过Selenium点击按钮导出股票持仓CSV文件,但点击操作失败。相关元素代码如下:
<span class="download-csv link"><span class="icon icon-download"></span>Download <a href="#" class="hide download-link"></a></span>
用户原实现代码:
element = driver.find_element(by = By.LINK_TEXT, value="Download") element.click()
下载按钮样式:
解决方案
1. 定位外层可交互元素点击
页面中外层的<span class="download-csv link">是实际接收点击事件的区域,改用CSS选择器定位并等待元素可点击后操作:
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 等待元素加载完成并可点击 download_btn = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.CSS_SELECTOR, "span.download-csv.link")) ) download_btn.click()
2. 强制触发隐藏的下载链接
页面内的<a class="hide download-link">是实际触发下载的核心元素,虽被样式隐藏,可通过JavaScript强制执行点击:
download_link = driver.find_element(By.CSS_SELECTOR, "a.download-link") driver.execute_script("arguments[0].click();", download_link)
3. 配置浏览器下载参数(避免无文件输出)
若点击后无文件下载,需提前配置浏览器下载路径并关闭弹窗提示:
from selenium.webdriver.chrome.options import Options from selenium import webdriver options = Options() options.add_experimental_option("prefs", { "download.default_directory": "/自定义/下载/路径", "download.prompt_for_download": False, "download.directory_upgrade": True, "safebrowsing.enabled": True }) driver = webdriver.Chrome(options=options)
内容的提问来源于stack exchange,提问作者Chinmay Sahoo
相关产品推荐
相关产品推荐

