在fedora上安装python selenium绑定时出错

在fedora上安装python selenium绑定时出错,python,firefox,selenium,webdriver,Python,Firefox,Selenium,Webdriver,我正试图通过查看来安装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> ImportErro

我正试图通过查看来安装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
从selenium.firefox.webdriver导入webdriver
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为firefox.webdriver的模块
为了解决这个问题,我搜索了很多,但我没有找到正确的示例,请任何人提供一种方法和示例,说明如何安装python selenium绑定以及返回上述错误的原因

提前感谢

编辑: 我根据下面的答案编辑了我的代码,并尝试了下面的方法,我得到了下面的答案

>>> 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' 
来自selenium导入webdriver的
>
>>>driver=webdriver.Firefox()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.7/site packages/selenium-2.21.3-py2.7.egg/selenium/webdriver/firefox/webdriver.py”,第51行,在__
self.binary,超时),
文件“/usr/lib/python2.7/site packages/selenium-2.21.3-py2.7.egg/selenium/webdriver/firefox/extension_connection.py”,第47行,在u init中__
self.binary.launch_浏览器(self.profile)
文件“/usr/lib/python2.7/site packages/selenium-2.21.3-py2.7.egg/selenium/webdriver/firefox/firefox\u binary.py”,第44行,在launch\u浏览器中
self.\u等待\u直到\u可连接()
文件“/usr/lib/python2.7/site packages/selenium-2.21.3-py2.7.egg/selenium/webdriver/firefox/firefox\u binary.py”,第81行,在“等待”直到“可连接”
self.\u获取\u firefox\u输出()
selenium.common.exceptions.WebDriverException:Message:“在我们连接之前,浏览器似乎已退出。”。输出为:**LOG addons.xpi:startup\n***LOG addons.xpi:checkForChanges\n***LOG addons.xpi:Opening database\n***LOG addons.xpi:No changes\n找不到dlopen/usr/lib/libX11。so.6\ndlerror显示:/usr/lib/libX11。so.6:错误的ELF类:ELFCLASS32\n

并且还说Firefox1.0中出现了一些崩溃…

,正如在该页面上所述,他们已经重新组织了包。使用我在这里发布的第二个代码清单

在编写时使用trunk的一个优点是重新组织包。以前,要初始化浏览器,必须执行以下操作:

这一点已经改变,因此现在需要做的是:

编辑(针对新错误):


您是在没有X显示的linux服务器上运行此功能的吗?Firefox需要一个显示来呈现自己。看看运行“headless”(无X)的情况。

我在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共享对象,英特尔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
此后,硒开始发挥作用。

我按照上面的方式编辑了代码,得到了上面提到的arror。请查看我帖子上的编辑。如果您运行的服务器不是X Display,则必须使用PyVirtualDisplay之类的工具无头运行。我已经安装了PyVirtualDisplay,非常抱歉,我不知道如何使用X Display运行,我做了与该页面中显示的相同的操作,但仍然收到相同的错误。请您提供一个如何删除此错误的示例代码。提前感谢虽然这在理论上可以回答这个问题,但我们希望您在回答中包括链接文章的基本部分,并提供。如果做不到这一点,答案将面临链接腐烂的风险。
find / | grep libX11.so.6 | xargs file
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