“TypeError:'null'不是第一次执行代码时的对象

时间:2015-02-19 18:59:17

标签: python python-2.7 ghost.py

当我执行fallowing代码时,Ghost给了我这个错误:

    from ghost import Ghost
    from bs4 import BeautifulSoup

    url = "https://wyszukiwarkaregon.stat.gov.pl/appBIR/index.aspx"
    ghost = Ghost()

    page, resources = ghost.open(url)
    page, resources = ghost.evaluate(
         "document.getElementById('btnNowaCaptcha').click();")
    soup = BeautifulSoup(ghost.content)
    capcha = soup.find(id='imgCaptch')

但是当我使用pdb并再次执行最后两行时,一切都很好。 有人知道为什么吗?

1 个答案:

答案 0 :(得分:3)

我猜该页面尚未完全加载,因此document.getElementById('btnNowaCaptcha')会返回null;你应该添加

ghost.wait_for_page_loaded()  # and/or
ghost.wait_for_selector("#btnNowaCaptcha")

ghost.evaluate之前确保页面已完全加载。