获得“消息:h为空” [英] Getting "Message: h is null"

查看:108
本文介绍了获得“消息:h为空”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



简单明了):

  from selenium import webdriver 

driver = webdriver.Firefox()
driver.get(http://www.drugs.com/drug-class/laxatives.html?condition_id=&generic=0&sort=rating&order=desc)

打印driver.find_element_by_tag_name(title)。text

以下是错误I '
$ b $ pre $ Traceback(最近一次调用最后一次):
文件/ Users / a / p / SO /selenium_scripts/test.py,第6行,在< module>
print driver.find_element_by_tag_name(title)。text
文件/Users/a/.virtualenvs/so/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py ,第328行,在find_element_by_tag_name
中返回self.find_element(by = By.TAG_NAME,value = name)
文件/Users/a/.virtualenvs/so/lib/python2.7/site-在$ find_element
{'using':by,'value':value})['value']
文件/ Users / packages / selenium / webdriver / remote / webdriver.py a / .virtualenvs / so / lib / python2.7 / site-packages / selenium / webdriver / remote / webdriver.py,第175行,执行
self.error_handler.check_response(response)
File /Users/a/.virtualenvs/so/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py,第166行,在check_response
raise exception_class(message,screen,stacktrace)
selenium.common.exceptions.WebDriverException:消息:h为空

使用Firefox 37.0和硒2.45.0。





观察结果:


  • 如果我切换到 webdriver。 Chrome浏览器() - 我没有看到任何错误

  • 如果我使用不同的URL,例如 https://google.com - 我没有看到任何错误

  • 我试着明确地等待搜索结果在进行任何进一步的操作之前是可见的,但是我仍然得到相同的错误,我用过的代码:

      from selenium import webdriver 
    from selenium.webdriver.common.by import通过
    从selenium.webdriver.support.ui导入WebDriverWait
    从selenium.webdriver.support导入expected_conditions作为EC

    driver = webdriver.Firefox()
    driver.get(http://www.drugs.com/drug-class/laxatives.html?condition_id=&generic=0&sort=rating&order = desc)

    #等待表列表加载
    WebDriverWait(driver,10).until(EC.presence_of_element_located((By.CSS_SELECTOR,table.data-list) ))


  • 不容易googleable这可能意味着它是网站特定的,但是,之前,在Chrome中没有错误






错误com从和我能做些什么来防止/修复它?这是否意味着我不能使用selenium + firefox浏览/定位这个网页上的元素?

c> selenium 2.45.0不支持ff 37 。



更改日志显示硒2.44支持FF33。 Selenium 2.45于2015年2月26日左右发布,FF37于2015年3月31日发布。

I've recently encountered something I've never seen before while using selenium.

The code (quite simple and straightforward):

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.drugs.com/drug-class/laxatives.html?condition_id=&generic=0&sort=rating&order=desc") 

print driver.find_element_by_tag_name("title").text

Here is a stack trace of the error I'm getting:

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

Using Firefox 37.0 and selenium 2.45.0.


Observations:

  • if I switch to webdriver.Chrome() - I don't see any errors
  • if I use a different URL, e.g. https://google.com - I don't see any errors
  • I've tried to explicitly wait for search results to be visible before making any further actions, but I still get the same error, code I've used:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver = webdriver.Firefox()
    driver.get("http://www.drugs.com/drug-class/laxatives.html?condition_id=&generic=0&sort=rating&order=desc") 
    
    # wait for the table list to load
    WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "table.data-list")))
    

  • it is not easily googleable which probably means it is web-site specific, but, as noted before, no errors in Chrome

Where is the error coming from and what can I do to prevent/fix it? Does this mean I cannot browser/locate elements on this particular web page using selenium+firefox?

解决方案

Looks like selenium 2.45.0 does not support ff 37.

The change log shows selenium 2.44 supported FF33. Selenium 2.45 was released around Feb 26th 2015, while FF37 was released on March 31st 2015.

这篇关于获得“消息:h为空”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆