单击没有ID或唯一名称的硒python的下载按钮

时间:2020-07-15 17:15:02

标签: python selenium

我有一个网站,我想在其中下载Excel文件。 https://www.rivm.nl/media/smap/eenzaamheid.html

我希望能够单击菜单中的下载按钮。要打开“下载菜单”(如果需要,请打开下拉菜单),我正在执行以下操作:

 WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='highcharts-container ']//*[name()='svg']//*[name()='g' and @aria-label='View export menu']//*[name()='rect']"))).click()

打开菜单后,我希望能够单击“ XLS Downloaden”(因为我要使用Excel文件,因此非常具体)

我尝试通过执行以下操作在div元素中查找文本来单击按钮:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH("//*[contains(text(),'XLS downloaden')]")))).click()

但这会导致“对象不可调用”错误

我也尝试了以下方法,但这会导致超时错误:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='highcharts-menu-item ']//*[name()='svg']//*[contains(text(),'XLS downloaden')]"))).click()

那么,我该如何点击“ XLS downloaden”?

1 个答案:

答案 0 :(得分:0)

经过反复试验,我自己找到了一种方法:

 download = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='highcharts-container ']//*[name()='svg']//*[name()='g' and @aria-label='View export menu']//*[name()='rect']")))  
download.click()
WebDriverWait(download, 10).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='highcharts-menu']//*[contains(text(),'XLS downloaden')]"))).click()

如果有人知道更好的方法,请告诉我

相关问题