首页 > 解决方案 > 为什么 Selenium (Python) 在带有链接文本的页面上找不到链接?

问题描述

这是我从中绘制的 HTML 片段:

<div class="exportlinks">
Export options:
<a href=[link]>
<span class="export CSV">CSV</span>
</a>
|
<a href=[really secret link here]>
<span class="export excel">Excel</span>
</a>
</div>

这是我尝试使用的代码片段:

exportToExcel = browser.find_element_by_link_text("Excel")
exportToExcel.click()

我还尝试按类名(导出 excel)查找元素,但无济于事。

哎呀,我什至尝试通过按类查找元素(“exportlinks”)来检索两个链接,然后从该列表中选择我想要的那个,但它返回了一个空列表。

我在这里错过了什么吗?这是否与文本和类在 a 中的事实有关?或者这个 HTML 片段在页面的其余部分 HTML 中相当深入的事实?

任何帮助,将不胜感激!谢谢!

标签: pythonselenium

解决方案


如果它是动态生成的,你必须使用WebDriverWait

exportToExcel = WebDriverWait(driver, 15).until(
    lambda d: d.find_element_by_link_text("Excel")
    # lambda d: d.find_element_by_css_selector('.export.excel')
)
exportToExcel.click()

或者如果它在iframe切换到它

iframe = driver.find_element_by_***("....")
driver.switch_to.frame(iframe)
exportToExcel = browser.find_element_by_link_text("Excel")
exportToExcel.click()

推荐阅读