2

我正在尝试通过查看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 绑定以及为什么返回上述错误。

提前致谢..........

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

>>> 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....

4

2 回答 2

1

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

在撰写本文时使用主干的一个优点是对包的重组。以前,要初始化您必须执行的浏览器,

from selenium.firefox.webdriver import WebDriver
driver = WebDriver()

这已经改变了,所以现在只需要:

from selenium import webdriver
driver = webdriver.Firefox()

编辑(对于新错误):

你是从没有 X 显示器的 linux 服务器上运行它吗?Firefox 需要一个显示器来呈现自己。看一下PyVirtualDisplay以运行“无头”(没有 X)。

于 2012-06-22T08:55:37.380 回答
1

我在 Fedora 17 64 位上遇到了同样的问题。selenium - 加载 x_ignore_nofocus.so 问题

Selenium 无法启动 Firefox,并出现以下错误:

'在我们连接之前,浏览器似乎已经退出。输出为: dlopen 失败 /usr/lib/libX11.so.6\ndlerror 说:/usr/lib/libX11.so.6: wrong ELF class: 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

之后硒开始工作。 来源

于 2012-07-21T03:18:34.793 回答