Selenium无法找到它已经找到的元素

时间:2017-03-21 13:58:31

标签: python selenium

好的,我正试图从Craigslist中提取链接。具体来说,我正在尝试查找class = result-title的链接,例如

<a href="/gbs/fee/6023288599.html" data-id="6023288599" class="result-title hdrlnk">NICE 2 BR NEAR BOSTON COLLEGE-  HT/HW INCLUDED - ON COMM AVE 9/1</a>

但由于某种原因,以下代码

        address = driver.find_elements_by_class_name('result-title')[i].text
        print(address)
        address2 = driver.find_element_by_partial_link_text(address).get_attribute('href')
        print(address2)
        driver.get(address2)

不起作用。尝试查找示例链接会导致以下错误:

selenium.common.exceptions.NoSuchElementException:消息:无法找到元素:NICE 2 BR BOSTON COLLEGE附近 - HT / HW包含 - 在COMM AVE 9/1

有谁知道我做错了什么?

编辑:当我第一次调用get_attribute时,我意识到这是一种愚蠢而迂回的方式,但我仍然很好奇为什么它不起作用。

1 个答案:

答案 0 :(得分:0)

可能是网站需要一些时间来加载您正在寻找的元素,并且在加载之前您正在搜索它。看看timeout documentation。您可以指定隐式或显式超时,如下所示:

var select = document.getElementById('#type');
option = //Get your data you want to add and put it between two <option> tags
select.appendChild(option);