Selenium(Python)为什么找不到带有链接文本的页面链接?

时间:2018-12-30 01:32:27

标签: python selenium

这是我从中绘制的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)来查找元素,但无济于事。

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

我在这里错过了什么吗?它和文本和类都在一个事实中有关吗?还是这个HTML代码段在页面的其余HTML代码中很深?

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

1 个答案:

答案 0 :(得分:1)

如果它是动态生成的,则必须使用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()