获得“消息:h为空” [英] Getting "Message: h is null"
问题描述
我最近在使用 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屋!