2013-09-12 3 views
12

Я только что установил Selenium в первый раз, и у меня возникли проблемы с началом работы.Selenium WebDriver: Firefox запускается, но не открывается URL-адрес

Установка прошла нормально с pip:

pip install selenium 

И я могу import selenium в Python.

Теперь я пытаюсь запустить следующий пример сценария:

from selenium import webdriver 
driver = webdriver.Firefox() 
driver.get("http://www.python.org") 
assert "Python" in driver.title 

Что происходит, что Firefox открывается, но не переходить к «http://www.python.org» (аналогично поведению описано in this question - это только показывает, пустая страница)

В течение примерно 60 секунд ничего не происходит, пока следующее исключение не поднял:

Traceback (most recent call last): 
    File "selenium-test.py", line 4, in <module> 
    driver = webdriver.Firefox() 
    File "/home/usr1/.local/lib/python2.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 61, in __init__ 
    desired_capabilities=capabilities) 
    File "/home/usr1/.local/lib/python2.6/site-packages/selenium/webdriver/remote/webdriver.py", line 72, in __init__ 
    self.start_session(desired_capabilities, browser_profile) 
    File "/home/usr1/.local/lib/python2.6/site-packages/selenium/webdriver/remote/webdriver.py", line 114, in start_session 
    'desiredCapabilities': desired_capabilities, 
    File "/home/usr1/.local/lib/python2.6/site-packages/selenium/webdriver/remote/webdriver.py", line 165, in execute 
    self.error_handler.check_response(response) 
    File "/home/usr1/.local/lib/python2.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 136, in check_response 
    raise exception_class(value) 
selenium.common.exceptions.WebDriverException: Message: u'<HTML><HEAD>\r\n<TITLE>Network Error</TITLE>\r\n</HEAD>\r\n<BODY>\r\n<FONT face="Helvetica">\r\n<big><strong></strong></big><BR>\r\n</FONT>\r\n<blockquote>\r\n<TABLE border=0 cellPadding=1 width="80%">\r\n<TR><TD>\r\n<FONT face="Helvetica">\r\n<big>Network Error (tcp_error)</big>\r\n<BR>\r\n<BR>\r\n</FONT>\r\n</TD></TR>\r\n<TR><TD>\r\n<FONT face="Helvetica">\r\nA communication error occurred: "Operation timed out"\r\n</FONT>\r\n</TD></TR>\r\n<TR><TD>\r\n<FONT face="Helvetica">\r\nThe Web Server may be down, too busy, or experiencing other problems preventing it from responding to requests. You may wish to try again at a later time.\r\n</FONT>\r\n</TD></TR>\r\n<TR><TD>\r\n<FONT face="Helvetica" SIZE=2>\r\n<BR>\r\nFor assistance, contact your network support team.\r\n</FONT>\r\n</TD></TR>\r\n</TABLE>\r\n</blockquote>\r\n</FONT>\r\n</BODY></HTML>' 

Эти версии программного обеспечения

  • Firefox ESR 17.0.5
  • Селен (Python привязок) 2.35.0
  • Python 2.6.6
  • Red Had Linux 6.3
  • «Firefox WebDriver 2,35. 0 "
+0

запустить локальный веб-сервер, а затем попытайтесь получить http: // localhost. В зависимости от настройки сети могут возникать проблемы с настройкой прокси. –

+0

Что происходит, когда вы просто запускаете firefox нормально и посещаете python.org, это работает. –

+0

У меня возникла та же проблема, но Selenium был уже в самой новой версии, так что Firefox и настройка сетевого прокси не помогли. Я наткнулся на заметку на странице проблем Selenium на github: 'FIREFOX 48+ ТОЛЬКО СОВМЕСТИМСЯ С GECKODRIVER. Любая проблема, зарегистрированная здесь для 48+, будет закрыта как дубликат # 2559' И я понизил свой Firefox с 49 до 45. Он работает хорошо. Я предполагаю, что этот «Geckodriver» является решением отныне. – mpiskore

ответ

3

Хорошо, после того как я искал какое-то время, я заметил, что обычно проблема была ошибкой в ​​Selenium (возможно, но маловероятно), или проблема с прокси-сервером. Тем не менее, ни один из ответов, предлагающих, как решить проблему с прокси-сервером, по-видимому, не работает.

Наконец-то я понял: вам нужно отключить все настройки прокси-сервера везде (переменные окружения, а в моем случае это проблема Gnome).Позже, когда вы создаете WebDriver, вам необходимо пройти профиль, который устанавливает в браузере настройку прокси-сервер на то, что вы на самом деле использовать (в моем случае автоматической конфигурации URL)

1) UNSET переменной http_proxy среды (которая используется по urllib)

export http_proxy= 

2) Очищенные Gnome настройки прокси-сервера: Система -> настройки -> Сеть Proxy -> Выберите "прямое подключение к Интернету"

3) работа webdriver.Firefox() с профилем, который настраивает прокси-сервер (в данном случае это автоматическая настройка прокси-сервер)

fp = webdriver.FirefoxProfile() 
# Here "2" stands for "Automatic Proxy Configuration" 
fp.set_preference("network.proxy.type", 2) 
fp.set_preference("network.proxy.autoconfig_url", 
        "http://proxy-address-here:8080/") 
driver = webdriver.Firefox(firefox_profile=fp) 
+0

Что относительно класса webdriver.Proxy? Кажется, вы можете установить его на "" пустое. Вы используете длинный путь, выбирая и настраивая прокси-профиль. Поправьте меня если я ошибаюсь. Следуя вашему примеру, я вижу, что python WebDriver лучше, чем ненастоящие версии PHP. Работал из коробки. – erm3nda

1

потребности обновить селен, если вы используете Последнюю версию Firefox, вы должны использовать последнюю версию селена

Для Python, введите следующую команду

pip install -U selenium 

Для Java, удалить старую банку и скачать последнюю версию здесь http://www.seleniumhq.org/download/ и прикрепление в б uild путь. Это сработает. Удачного тестирования с Firefox

0

Пожалуйста, попробуйте отключить ваш Localhost (127.0.0.1) веб-сервер, если вы имеете любой работающий на обычном порту 80.

Firefox Binary не позволяет загружать, если профиль существует работает локальный сервер.

См линии 81 в селен \ WebDriver \ светлячок \ firefox_binary.py, который указывает на функции/метода is_connectable (само)

def is_connectable(self): 

    """Trys to connect to the extension but do not retrieve context.""" 
    try: 
     socket_ = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
     socket_.settimeout(1) 
     socket_.connect(("127.0.0.1", self.profile.port)) 
     socket_.close() 
     return True 
    except socket.error: 
     return False 

GLHF

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