Python 获得;消息:h为空";

Python 获得;消息:h为空";,python,firefox,selenium,selenium-webdriver,Python,Firefox,Selenium,Selenium Webdriver,我最近在使用selenium时遇到了一些我以前从未见过的东西 代码(非常简单明了): 下面是我得到的错误的堆栈跟踪: Traceback (most recent call last): File "/Users/a/p/SO/selenium_scripts/test.py", line 6, in <module> print driver.find_element_by_tag_name("title").text File "/Users/a/.virtual

我最近在使用
selenium
时遇到了一些我以前从未见过的东西

代码(非常简单明了):

下面是我得到的错误的堆栈跟踪:

Traceback (most recent call last):
  File "/Users/a/p/SO/selenium_scripts/test.py", line 6, in <module>
    print driver.find_element_by_tag_name("title").text
  File "/Users/a/.virtualenvs/so/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 328, in find_element_by_tag_name
    return self.find_element(by=By.TAG_NAME, value=name)
  File "/Users/a/.virtualenvs/so/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 664, in find_element
    {'using': by, 'value': value})['value']
  File "/Users/a/.virtualenvs/so/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 175, in execute
    self.error_handler.check_response(response)
  File "/Users/a/.virtualenvs/so/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 166, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: h is null
  • 它不容易谷歌搜索,这可能意味着它是特定于网站的,但正如前面提到的,Chrome中没有错误


  • 错误来自何处?我可以做些什么来防止/修复它?这是否意味着我无法使用selenium+firefox浏览/定位此特定网页上的元素?

    看起来selenium 2.45.0不支持ff 37


    显示了selenium 2.44支持的FF33。Selenium 2.45于2015年2月26日左右发布,而FF37于2015年3月31日发布。

    页面加载时,它似乎正在执行这行代码并抛出错误消息。 尝试使用等待页面加载

    time.sleep(200)
    
    并将这行代码保留在try块下,如下所示:

    try:
        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "table.data-list")))
    except:
        print("not found")
    

    selenium 2.45.0甚至支持ff 37吗?查看更改日志(),selenium 2.44支持FF33。Selenium 2.45大约于2015年2月26日发布,而FF37则于2015年3月31日发布。@Amey是的,这是有道理的,我将尝试降级firefox并报告。谢谢本打算提出firefox兼容性问题,但看起来已经有人提出了。Firefox与Selenium的“兼容性”最好,但同时它的兼容性也最差,因为兼容性在每个版本中都有很大的限制。@Amey,就是这样!将Firefox降级到36没有帮助,但是到35.0.1起作用,不再出现类似的错误。请将其作为答案发布,我会接受。@aholt是的,我怀疑这是selenium firefox的兼容性问题,因为之前曾与他们讨论过,但决定发布一个问题,以防将来有人遇到类似错误。正在确认。降级到Firefox 35.0.1有助于解决这个问题。非常感谢。不,正如我在问题中指出的,我尝试添加一个显式等待,但得到了相同的错误。无论如何,问题已经解决,这是由于firefox和selenium之间的兼容性问题。谢谢
    time.sleep(200)
    
    try:
        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "table.data-list")))
    except:
        print("not found")