2

ここを見て、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セレンバインディングをインストールする方法と上記のエラーが返される理由について誰かに教えてください。

前もって感謝します..........

編集済み: 以下の回答に従ってコードを編集し、次のことを試しました。以下を取得しました

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

そのページに記載されているように、彼らはパッケージを再編成しました。ここに投稿した 2 番目のコード リストを使用します。

執筆時点でトランクを使用する利点の 1 つは、パッケージの再編成です。以前は、実行する必要があったブラウザを初期化するには、

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

これは変更されたため、必要なのは次のとおりです。

from selenium import webdriver
driver = webdriver.Firefox()

編集(新しいエラーの場合):

XディスプレイのないLinuxサーバーからこれを実行していますか? Firefox は、それ自体をレンダリングするためにディスプレイを必要とします。「ヘッドレス」(X なし) を実行するためのPyVirtualDisplayを見てください。

于 2012-06-22T08:55:37.380 に答える
1

Fedora 17 64ビットでも同じ問題があります。セレン - x_ignore_nofocus.so のロードに関する問題 問題

Selenium は、次のエラーで Firefox の起動に失敗します:

「接続する前にブラウザーが終了したようです。出力は次のとおりです: Failed to dlopen /usr/lib/libX11.so.6\ndlerror : /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32\n'

これは、x_ignore_nofocus ライブラリが 64 ビットではなく 32 ビット バージョンの libX11 をロードしようとするためです。私のシステムには、次のバージョンの 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 に答える