我试图通过查看here
来安装python-selenium绑定当我尝试导入以下命令时,它显示错误
from selenium.firefox.webdriver import WebDriver
结果:
from selenium.firefox.webdriver import WebDriver
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named firefox.webdriver
我搜索了很多来解决这个问题,但我没有得到正确的例子来做这个,有人可以请我提供一个方法和一个例子来说明如何安装python selenium绑定以及为什么返回上面的错误。< / p>
提前致谢..........
已编辑: 我根据下面的答案编辑我的代码,并尝试了以下,我得到了以下
>>> from selenium import webdriver
>>> driver = webdriver.Firefox()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/selenium-2.21.3-py2.7.egg/selenium/webdriver/firefox/webdriver.py", line 51, in __init__
self.binary, timeout),
File "/usr/lib/python2.7/site-packages/selenium-2.21.3-py2.7.egg/selenium/webdriver/firefox/extension_connection.py", line 47, in __init__
self.binary.launch_browser(self.profile)
File "/usr/lib/python2.7/site-packages/selenium-2.21.3-py2.7.egg/selenium/webdriver/firefox/firefox_binary.py", line 44, in launch_browser
self._wait_until_connectable()
File "/usr/lib/python2.7/site-packages/selenium-2.21.3-py2.7.egg/selenium/webdriver/firefox/firefox_binary.py", line 81, in _wait_until_connectable
self._get_firefox_output())
selenium.common.exceptions.WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: *** LOG addons.xpi: startup\n*** LOG addons.xpi: checkForChanges\n*** LOG addons.xpi: Opening database\n*** LOG addons.xpi: No changes found\nFailed to dlopen /usr/lib/libX11.so.6\ndlerror says: /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32\n'
还说有some crash in firefox 1.0....
答案 0 :(得分:1)
如该页面所述,他们已重新组织该套餐。使用我在这里发布的第二个代码清单。
在写作时使用trunk的一个优点是包的重组。以前,要初始化您必须执行的浏览器,
from selenium.firefox.webdriver import WebDriver
driver = WebDriver()
这已经改变了,所以现在所需要的只是:
from selenium import webdriver
driver = webdriver.Firefox()
编辑(新错误):
您是从没有X显示的Linux服务器运行的吗? Firefox需要一个显示来呈现自己。看看PyVirtualDisplay运行“无头”(没有X)。
答案 1 :(得分:1)
我在Fedora 17 64位上遇到同样的问题。 selenium - 加载x_ignore_nofocus.so的问题 问题
Selenium无法启动Firefox并出现以下错误:
'在我们连接之前,浏览器似乎已退出。 输出结果为:无法dlopen /usr/lib/libX11.so.6\ndlerror 说:/usr/lib/libX11.so.6:错误的ELF类:ELFCLASS32 \ n'
这是因为x_ignore_nofocus库试图加载32位版本的libX11而不是64位。在我的系统中有以下版本的libX11:
find / | grep libX11.so.6 | xargs file
/usr/lib64/libX11.so.6:libX11.so.6.3.0的符号链接 /usr/lib64/libX11.so.6.3.0:ELF 64位LSB共享对象,x86-64,版本1(SYSV),动态链接,剥离 /usr/lib/libX11.so.6:到`libX11.so.6.3.0'的符号链接 /usr/lib/libX11.so.6.3.0:ELF 32位LSB共享对象,Intel 80386,版本1(SYSV),动态链接,剥离
解 更改符号链接/usr/lib/libX11.so.6以指向64位版本/usr/lib64/libX11.so.6.3.0:
mv /usr/lib/libX11.so.6 /usr/lib/libX11.so.6.bak
ln -s /usr/lib64/libX11.so.6.3.0 /usr/lib/libX11.so.6
之后,硒开始起作用。 Source