尝试在Python中使用Selenium 2,但出现导入错误
我刚刚通过运行 pip install selenium
安装了 Selenium 2,然后复制了一些示例测试来确认它是否正常工作:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("selenium")
elem.send_keys(Keys.RETURN)
assert "Google" in driver.title
driver.close()
我把这个文件保存为 test.py
,放在我 Mac 的主文件夹下的一个子文件夹里,但每次我运行 python test.py
时,都会得到以下输出:
Traceback (most recent call last):
File "demo.py", line 1, in <module>
from selenium import webdriver
ImportError: cannot import name webdriver
如果我把这个文件移到我的主目录下,它就能正常工作。如果你没看出来,我刚开始接触 Selenium 和编程。任何帮助都将非常感激。
8 个回答
虽然这个问题看起来已经很久没有人讨论了,但我也遇到了相同的消息/类似的问题,而且上面的回答都不适用。
这个网站 http://kevingann.blogspot.de/2012/11/troubleshooting-pydev-and-selenium.html 提供了一个关键的提示。
Selenium 在系统库中出现了两次,一次是作为 egg 文件,另一次是外部库中的“已安装”版本。删除这个 egg 文件解决了问题。
希望这也能帮助到其他人。
这个问题虽然老旧,但我也遇到过类似的情况。我把我的文件命名为'selenium.py',结果就出现了这个错误提示。我把文件改了个名字,但还是出现同样的错误。问题出在,之前我从终端运行过这个脚本,系统生成了一个selenium.pyc的文件。我把这个.pyc文件删掉后,程序就顺利运行了!
听起来你的路径中有一个叫“selenium”的其他模块,Python 正在尝试导入那个模块,因为它在你的 Python 路径中排在前面。比如说,你的文件名是不是叫“selenium.py”?
为了排查问题,可以用简单的 import selenium
来导入 selenium,然后用 print selenium.__file__
打印出被导入的文件名。
如果你有一个叫“selenium.py”的文件,但它并不是正确的 selenium 库,除了重命名或删除它之外,还要确保删除“selenium.pyc”文件,否则 Python 还会继续尝试从这个 .pyc 文件中导入。