我刚刚通过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和编程。对此有任何帮助将非常感激。
答案 0 :(得分:60)
听起来你的路径中有一些名为“selenium”的其他模块,而python正试图导入那个模块,因为它在python路径中较早出现。您是否将文件命名为“selenium.py”,例如?
要进行调试,请使用简单的import selenium
导入selenium,然后打印使用print selenium.__file__
如果你有一个名为“selenium.py”的文件,它不是正确的selenium库,除了重命名或删除它之外,请确保你也删除“selenium.pyc”,否则python将继续尝试从.pyc文件。
答案 1 :(得分:29)
老问题,但我也做了同样的事情。将我的文件命名为'selenium.py',它给出了这个非常错误的消息。将文件重命名为其他内容,但仍然出现相同的错误。问题是,selenium.pyc文件已经创建,因为我从终端运行脚本。删除了.pyc文件,它就像一个魅力!
答案 2 :(得分:4)
虽然这个问题在很长一段时间内似乎都处于非活动状态,但我有相同的消息/类似问题,而且上述答案都不合适。
网站http://kevingann.blogspot.de/2012/11/troubleshooting-pydev-and-selenium.html提供了至关重要的提示。
Selenium发生两次,一次在系统libs中作为egg,而“安装”版本在外部libs中发生。粉碎鸡蛋就行了。
希望这也会对某人有所帮助
答案 3 :(得分:0)
Pycharm中的错误“在将selenium dir从site-packages复制到lib后,无法在'导入的模块selenium.webdriver'中找不到引用'Chrome'。 可以按照上述说明进行验证
import selenium
print (selenium.__file__)
答案 4 :(得分:0)
Sethe project interpreter as actual python.exe
我能够成功运行以下代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import time
opts = Options()
prefs = {"profile.managed_default_content_settings.images": 2}
opts.add_experimental_option("prefs", prefs)
# enter complete path of chrome driver as argument to below line of code
browser = webdriver.Chrome('C:\\Users\\BLR153\\AppData\\Local\\Programs\\Python\\Python36-32\\selenium\\chromedriver.exe')
# browser = webdriver.Firefox()
browser.get('http://www.google.com')
time.sleep(10)
browser.quit()
答案 5 :(得分:0)
只需命名您的 pytnon 文件而不是 selenium.py !!! 它不是在 selenium 中寻找 webdriver,而是在您尝试连接它的文件中
答案 6 :(得分:-3)
希望有所帮助。