Вы можете попробовать список наподобие datelist=[ '03/2020','02/2020','01/2020']
this и проверить даты, доступные на веб-странице, используя параметр ниже xpath. Если дата доступна, то щелкнет и загрузит, иначе сообщит, что даты недоступны. Использовать try..except
block.ignore sleep()
использовать WebDriverWait
()
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
driver=webdriver.Chrome()
driver.get('https://fnet.bmfbovespa.com.br/fnet/publico/abrirGerenciadorDocumentosCVM?cnpjFundo=07000400000146')
driver.find_element_by_css_selector('input[type="search"]').click()
driver.find_element_by_css_selector('input[type="search"]').send_keys('informe mensal')
datelist=[ '03/2020','02/2020','01/2020']
for dates in datelist:
try:
WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.XPATH,"//table[@id='tblDocumentosEnviados']//td[text()='"+ dates + "']/following-sibling::td[5]//a[@title='Download do Documento']"))).click()
print('file downloaded with dates available ' + dates)
except:
print("No such dates available " + dates)
Это будет печататься на консоли следующим образом.
No such dates available 03/2020
file downloaded with dates available 02/2020
file downloaded with dates available 01/2020
Обновленный код со статусом Ativo
driver.get('https://fnet.bmfbovespa.com.br/fnet/publico/abrirGerenciadorDocumentosCVM?cnpjFundo=07000400000146')
driver.find_element_by_css_selector('input[type="search"]').click()
driver.find_element_by_css_selector('input[type="search"]').send_keys('informe mensal')
datelist=[ '03/2020','02/2020','01/2020']
for dates in datelist:
try:
WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.XPATH,"//table[@id='tblDocumentosEnviados']//td[text()='"+ dates +"']/following-sibling::td[.//span[text()='Ativo']]/following-sibling::td//a[@title='Download do Documento']"))).click()
print('file downloaded with dates available ' + dates)
except:
print("No such dates available " + dates)