Python Selenium單擊表中存在另一個元素的元素


0

我正在嘗試創建一個剪貼簿,該剪貼簿可以進入網站並從房地產基金下載包含資產負債表的XML文件。

使用下面的代碼,我輸入一個特定基金的網站,文檔編號為07000400000146(位於URL的末尾),使用網站上的搜索欄過濾文檔,然後單擊以使用下載表格中的第一個文檔XPath。

driver.get('https://fnet.bmfbovespa.com.br/fnet/publico/abrirGerenciadorDocumentosCVM?cnpjFundo=07000400000146')
driver.find_element_by_css_selector(f'input[type="search"]').click()
driver.find_element_by_css_selector(f'input[type="search"]').send_keys('informe mensal')
time.sleep(1)
driver.find_element_by_xpath('//*[@id="tblDocumentosEnviados"]/tbody/tr[1]/td[10]/div/a[2]/i').click()

如何改進此代碼,以僅單擊"數據引用"列中帶有" 02/2020"的文檔的下載按鈕?

0

You can use find_elements_by_xpath (note the s) to find all elements that match a search.

all_rows = driver.find_element_by_xpath('//*[@id="tblDocumentosEnviados"]/tbody/tr')

Then you can filter out the rows using:

rows_for_feb_2020 = [row for rows in all_rows if (put here a boolean expression to discover if a row is of 02/2020)]

Then you can click in each one:

map(lambda row: row.find_element_by_xpath(...).click(), rows_for_feb_2020)