Selenium在计算标题名称时单击按钮



我是硒的新手,想从网站下载一个特定的文件。有多个类标记,每个类标记的标题形式为"[Year] Annual report"。以下是2017年的情况。我怎样才能点击"下载"按钮,同时确保这是特定年份的按钮(例如,2017年而不是2015年)?

<li class="" style="display: flex;">
<img src="/HostedData/_ara_prvw/68711.jpg" alt="1-800-FLOWERS.COM" title="1-800-FLOWERS.COM" width="182" height="235">
<div class="text_block">
<span class="heading">2017 Annual Report</span>
<span class="btn_archived view_annual_report">
<a href="/HostedData/AnnualReportArchive/1/NASDAQ_FLWS_2017.pdf" title="View 2017 Annual Report (PDF)" target="_blank">View Annual Report</a>
</span>

<span class="btn_archived download">
<a href="/HostedData/AnnualReportArchive/1/NASDAQ_FLWS_2017.pdf" download="">Download</a>
</span>
</div>
</li>

对于您共享的页面,您可以使用以下XPath://span[@class='btn_archived download'][.//a[contains(@href,'2017')]]
因此,单击它的Selenium python命令可以如下所示:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 20)
wait.until(EC.element_to_be_clickable((By.XPATH,"//span[@class='btn_archived download'][.//a[contains(@href,'2017')]]"))).click()

实际代码可能包含滚动和更多必需的操作。根据实际代码流程。

最新更新