繁体   English   中英

如何使用 Selenium 下载文件?

[英]How can I download a file using Selenium?

我想从网站下载 xlsx 文件。 为此,我必须单击一个按钮,但我的 Python 代码找不到它。 使用我当前的 Python 代码,我可以使用 Selenium 打开网站并打开下载页面,我想要的是单击“Excel:扩展 XLSx”按钮。

options=webdriver.ChromeOptions()
options.add_argument("--start-maximized")
driver=webdriver.Chrome(executable_path=path_web_crawler+"chromedriver.exe",chrome_options=options)
driver.get("https://www.ine.es/jaxiT3/Datos.htm?t=25171")
time.sleep(3)
driver.find_element_by_xpath("//input[@name='btnDescargaForm']").click()

我试图检测按钮的内容

elem=driver.find_element_by_xpath("//input[@value='xlsx']")
driver.execute_script("arguments[0].click();",elem)
<iframe title="Popup content - Rising content" id="thickBoxINEfrm" name="thickBoxINEfrm" frameborder="0" width="100%" height="100%" marginheight="0" marginwidth="0" tabindex="0" onload=";autoResizeThickBox(this)"></iframe>

您的元素位于 iframe 中。

进口

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC

完整代码:

driver.get("https://www.ine.es/jaxiT3/Datos.htm?t=25171")
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.XPATH,"//input[@name='btnDescargaForm']"))).click()
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID,"thickBoxINEfrm")))
elem=wait.until(EC.presence_of_element_located((By.XPATH,"//input[@value='xlsx']")))
driver.execute_script("arguments[0].click();",elem)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM