首页 > 解决方案 > 单击 Div 元素:过时的元素引用

问题描述

我正在尝试单击一个按钮。

该按钮有一个 div 元素,其 id 为 ctl00_ContentPlaceHolder1_ReportViewer1_ReportViewer

单击按钮时,应出现一个下拉菜单,您可以在其中选择下载选项。我希望能够单击 excel 下载选项。

要单击第一个按钮,我尝试通过执行单击按钮

click_download_button = driver.find_element_by_xpath('//div[@id="ctl00_ContentPlaceHolder1_ReportViewer1_ctl10_ctl04_ctl00"]')
click_download_button.click()

但是,我得到了陈旧的元素参考。

我也尝试将鼠标悬停在按钮上然后单击,但这似乎也不起作用。

我还尝试直接单击第二个按钮(一个 excel 下载按钮)。

下载按钮具有以下属性

<a class="ActiveLink" title="Excel" alt="Excel" onclick="$find('ctl00_ContentPlaceHolder1_ReportViewer1').exportReport('EXCELOPENXML');" href="javascript:void(0)" style="padding:8px 8px 3px 8px;display:block;white-space:nowrap;text-decoration:none;">Excel</a>

我通过找到基于标题“Excel”的按钮来尝试这个,但这也不起作用

有什么办法可以点击第一个按钮或直接点击下载按钮?

标签: pythonselenium

解决方案


你试过吗:

import time

time.sleep(1)

click_download_button = driver.find_element_by_id("ctl00_ContentPlaceHolder1_ReportViewer1_ctl10_ctl04_ctl00")

click_download_button.click()

推荐阅读