51Testing软件测试论坛

标题: from selenium import webdriver总是报错,求指点 [打印本页]

作者: tshmylife    时间: 2015-11-11 11:35
标题: from selenium import webdriver总是报错,求指点
求指点,自学selenium+python,遇到如下问题:
>>> from selenium import webdriver


>>>
在IDLE中运行时没有报错,但是在IDLE的window窗体中报错
#coding=utf-8

from selenium import webdriver

browser=webdriver.Firefox()

browser.get("http://www.baidu.com")

browser.find_element_by_id("kw1").send_key("selenium")

browser.find_element_by_id("su1").click()

browser.quit()
报错信息为:
Traceback (most recent call last):
  File "D:\Python27\skier\selenium.py", line 3, in <module>
    from selenium import webdriver
  File "D:\Python27\skier\selenium.py", line 3, in <module>
    from selenium import webdriver
ImportError: cannot import name webdriver



作者: jingzizx    时间: 2015-11-11 13:51
成功解决的原因如下:在当前目录有个selenium的文件,Python会先导入这个文件,然后再导入标准库里面的selenium.py可以使用import selenium print selenium.__file__去看打印出的文件路径,如果不是下面类似的C:\Python27\lib\site-packages\selenium-2.31.0-py2.7.egg\selenium\__init__.pyc,需要把当前目录下的文件删除或者重命名
作者: zhuruize    时间: 2015-11-11 14:21
换种办法验证一下:先导入selenium然后看selenium有没这个模块
import selenium
dir(selenium)
看看是不是selenium的webdriver放在其他的地方了。


作者: tshmylife    时间: 2015-11-11 15:50
jingzizx 发表于 2015-11-11 13:51
成功解决的原因如下:在当前目录有个selenium的文件,Python会先导入这个文件,然后再导入标准库里面的sele ...

>>> print selenium.__file__
D:\Python27\lib\site-packages\selenium\__init__.pyc


>>>
试过这种方法,重命名或者删除selenium文件的话,就连在IDLE的命令模式下输入from selenium import webdriver 时都会报错了
作者: tshmylife    时间: 2015-11-11 15:51
zhuruize 发表于 2015-11-11 14:21
换种办法验证一下:先导入selenium然后看selenium有没这个模块
import selenium
dir(selenium)

谢谢哈,不过selenium模块存在
>>> dir(selenium)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', 'selenium']
作者: zhuruize    时间: 2015-11-11 16:18
tshmylife 发表于 2015-11-11 15:51
谢谢哈,不过selenium模块存在
>>> dir(selenium)
['__builtins__', '__doc__', '__file__', '__name__ ...

估计在selenium.selenium里面
作者: tshmylife    时间: 2015-12-18 15:20
问题解决了,是我的firefox浏览器安装路径不是默认路径,需要卸载重新按默认路径下载安装,就OK了
作者: tshmylife    时间: 2015-12-18 15:27
还有个错误就是  send_keys,不是send_key
作者: 快乐我的最爱5    时间: 2016-6-24 15:52
zhuruize 发表于 2015-11-11 14:21
换种办法验证一下:先导入selenium然后看selenium有没这个模块
import selenium
dir(selenium)

如果没有webdriver怎么解决呢
作者: zhuruize    时间: 2016-7-6 23:20
快乐我的最爱5 发表于 2016-6-24 15:52
如果没有webdriver怎么解决呢

没有重装一下selenium模块吧,一般是有的,或者你再看下是不是dir(selenium.selenium)下面。或者再找一下webdriver在哪个地方想办法导就好了
作者: 474846718    时间: 2016-7-18 17:09
jingzizx 发表于 2015-11-11 13:51
成功解决的原因如下:在当前目录有个selenium的文件,Python会先导入这个文件,然后再导入标准库里面的sele ...

python根目录下的selenium\目录干扰了ide,ide导错包了!!,真正的selenium包目录在\Lib\site-packages之下!!!

也可以试试python的这个倒包方案:
import sys
p=__import__('selenium.webdriver.firefox.webdriver',fromlist=('WebDriver'))
browser=p.WebDriver()
browser.get('https://www.baidu.com')



这样会导入firefox的webdriver类也可以避免python根目录下的selenium\目录的干扰哦
也可以避免python根目录下的selenium\目录的干扰哦
也可以避免python根目录下的selenium\目录的干扰哦
重要的说三遍!!


话说最新版的python端的selenium包里面的那个python根目录下的selenium\目录不知道哪里冒出来的
估计是firefox的webdriver文件,删不得的,删了就启动不了firefox,一启动就崩溃!!!






欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2