[英]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.