2016-06-26 2 views
1

Я с помощью Ubuntu x64Селен WebDrive socket.error

Когда я исполняю парование код:

from selenium import webdriver 
x = webdriver.Firefox() 
x.get('any address') 

я получаю ошибку: благородные предшественники

% python seleniumtest.py 
Traceback (most recent call last): 
    File "seleniumtest.py", line 2, in <module> 
    x = webdriver.Firefox() 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 85, in __init__ 
    keep_alive=True) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 90, in __init__ 
    self.start_session(desired_capabilities, browser_profile) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 177, in start_session 
    response = self.execute(Command.NEW_SESSION, capabilities) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 234, in execute 
    response = self.command_executor.execute(driver_command, params) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py", line 401, in execute 
    return self._request(command_info[0], url, body=data) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py", line 432, in _request 
    resp = self._conn.getresponse() 
    File "/usr/lib/python2.7/httplib.py", line 1051, in getresponse 
    response.begin() 
    File "/usr/lib/python2.7/httplib.py", line 415, in begin 
    version, status, reason = self._read_status() 
    File "/usr/lib/python2.7/httplib.py", line 371, in _read_status 
    line = self.fp.readline(_MAXLINE + 1) 
    File "/usr/lib/python2.7/socket.py", line 476, in readline 
    data = self._sock.recv(self._rbufsize) 
socket.error: [Errno 104] Connection reset by peer 

Что эта проблема? как я могу это исправить?


Эта проблема я решил выполнение парования команды в терминале:

терминала 1: % sudo Xvfb :10 -ac терминала 2: $ export DISPLAY=:10

Отработки коды благородных предшественников:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
driver.get("http://www.python.org") 
assert "Python" in driver.title 
elem = driver.find_element_by_name("q") 
elem.clear() 
elem.send_keys("pycon") 
elem.send_keys(Keys.RETURN) 
assert "No results found." not in driver.page_source 
driver.close() 

возвращается этим ошибка:

% python seleniumtest.py 
Traceback (most recent call last): 
    File "seleniumtest.py", line 4, in <module> 
    driver = webdriver.Firefox() 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 81, in __init__ 
    self.binary, timeout) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 51, in __init__ 
    self.binary.launch_browser(self.profile, timeout=timeout) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser 
    self._wait_until_connectable(timeout=timeout) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 98, in _wait_until_connectable 
    raise WebDriverException("The browser appears to have exited " 
selenium.common.exceptions.WebDriverException: Message: The browser appears to have exited before we could connect. If you specified a log_file in the FirefoxBinary constructor, check it for details. 

Мои Firefox и Selenium версия:

% firefox -v 
Mozilla Firefox 47.0 

% pip show selenium 
--- 
Metadata-Version: 2.0 
Name: selenium 
Version: 2.53.5 
Summary: Python bindings for Selenium 
Home-page: https://github.com/SeleniumHQ/selenium/ 
Author: UNKNOWN 
Author-email: UNKNOWN 
Installer: pip 
License: UNKNOWN 
Location: /usr/local/lib/python2.7/dist-packages 
Requires: 
Classifiers: 
    Development Status :: 5 - Production/Stable 
    Intended Audience :: Developers 
    License :: OSI Approved :: Apache Software License 
    Operating System :: POSIX 
    Operating System :: Microsoft :: Windows 
    Operating System :: MacOS :: MacOS X 
    Topic :: Software Development :: Testing 
    Topic :: Software Development :: Libraries 
    Programming Language :: Python 
    Programming Language :: Python :: 2.6 
    Programming Language :: Python :: 2.7 
    Programming Language :: Python :: 3.2 
    Programming Language :: Python :: 3.3 
    Programming Language :: Python :: 3.4 
+0

, если вы используете последнюю версию клиента селена, убедитесь, что обновили браузер firefox – xXxpRoGrAmmErxXx

+0

@xXxpRoGrAmmErxXx Я проверю это сейчас! – Lai32290

+0

@xXxpRoGrAmmErxXx Я проверил версию 'Firefox' и' Selenium', я думаю, что обе являются последней версией; Обновлено в моем сообщении – Lai32290

ответ

0

Возможно, вам нужен Firefoxdriver для селена. Я использовал Chrome для селена, и я загружаю Chromedriver. Вы можете скачать с https://sites.google.com/a/chromium.org/chromedriver/downloads. и вы можете ссылаться от https://sites.google.com/a/chromium.org/chromedriver/getting-started.

from selenium import webdriver 
import time 
chrome_driver_path = "/home/shifeng/shifengworld/tool/chrome_driver_downloads/chromedriver" 
browser = webdriver.Chrome(executable_path = chromedriver_path) 
href = "http://stackoverflow.com" 
browser.get(href) 
time.sleep(2) 

Это нормально для моей потребности.

0

попытка использовать следующий код:

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 

try: 
    driver = webdriver.Firefox() 
except: 
    binary = FirefoxBinary('C:/Program Files (x86)/Mozilla Firefox/firefox.exe') 
    driver = webdriver.Firefox(firefox_binary=binary) 

также может быть проблема в вашей версии Mozilla Firefox, когда мой Firefox автоматически само обновление webdriver.Firefox() не работало для меня, поэтому мне пришлось понизить версию Firefox до 36.0

+0

Полезно ли оно бинарным? – Windyground

+0

Извините, я не понимаю вопроса – ands

+0

binary = FirefoxBinary (XXX), FirefoxBinary() полезен? – Windyground

Смежные вопросы