无法在python中找到使用selenium的链接?

时间:2015-10-16 10:15:31

标签: python html selenium web-scraping beautifulsoup

我正在使用selenium抓取网页。我首先找到我想要的链接,然后点击它并下载它(链接是pdf)。发生的事情有时我能够这样做,但有时候selenium说找不到链接。我想这是由于页面加载不正确。我能做些什么呢?我正朝着正确的方向前进吗?

这是我以前的代码:

for b in source_code_2.find_all('a', href=True):
    if b.has_attr("title"):
        if(b['title']=='Click here to download'):
            urllib2.urlretrieve(full_url)

现在我想用硒和元素来做。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我认为你应该使用显式等待告诉selenium等到特定元素正确加载,在python中你可以使用以下方式显式等待:

  element = WebDriverWait(driver, 20).until(
    EC.presence_of_element_located((By.ID, "yourElement"))

OR

element = WebDriverWait(driver, 20).until(
    EC.element_to_be_clickable((By.ID, "yourElement"))
    element.click()

您只需要在上面的代码中替换您的元素ID,您可以根据需要将20秒更改为30,40。所以上面代码的意思是你的webdriver会等到20秒才能找到那个特定的元素。