我正在使用一个在线教育平台,该平台每天生成 Excel 电子表格。当我访问门户时,我可以单击特定日期或查看日期列表,每个日期都有一个内联下载按钮。我是 Python 中的 Selenium 新手,我正在尝试从列表页面下载其中的部分或全部。 这是示例列表的屏幕截图。 “下载 Excel”按钮位于列表中每个条目末尾的下拉列表中 这是下载按钮检查的屏幕截图
我无法找到任何 css id、html、xpath 等区别来指定我要单击哪个下载按钮。当我尝试仅指定 css 选择器时,仅下载了列表的顶部项目。
您可以尝试获取所有按钮并仅单击您想要的按钮。
# Find all
download_buttons = driver.find_elements(By.XPATH, '//div[@class="download-button"]/button')
specific_button_index = 2 # the index of the button
download_buttons[specific_button_index].click()
每个下拉菜单点都有一个增量 x 路径。 例如,在这个 Stack-overflow 页面的左侧,有一个选项列表:
注意每个选项如何比下一个更高? 因此,按照该示例,您可以按如下方式迭代堆栈交换:
for i in range(1,3):
xpath = "/html/body/div[3]/div[1]/div[1]/nav/ol/li[1]/ol/li[" + str(i) + "]"
menu = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH, xpath)))
menu.click()
#now do the same for the "Download Excel" option to click on it