Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Запуск Selenium Webdriver с прокси в Python


(kom) #1

Подскажите кто сталкивался с такой проблемой, в Chrome:

from selenium import webdriver
import urllib2
PROXY_IP = "myproxy.com.ua:3128"

proxy_user = 'me'
proxy_password_orig='mypass'
proxy_password = urllib2.quote(proxy_password_orig)

PROXY  = 'http://' +  proxy_user + ':' + proxy_password + '@' + PROXY_IP

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % PROXY  )

chrome = webdriver.Chrome(chrome_options=chrome_options)
chrome.get("http://whatismyipaddress.com")

При запуске выдаются такие ошибки:

  File "proxyseleniumstandard.py", line 20, in <module>
    driver = webdriver.Remote("http://localhost:4444/wd/hub", desired_capabiliti
es)
  File "c:\robottemp\Python\lib\site-packages\selenium\webdriver\remote\webdrive
r.py", line 72, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "c:\robottemp\Python\lib\site-packages\selenium\webdriver\remote\webdrive
r.py", line 114, in start_session
    'desiredCapabilities': desired_capabilities,
  File "c:\robottemp\Python\lib\site-packages\selenium\webdriver\remote\webdrive
r.py", line 163, in execute
    response = self.command_executor.execute(driver_command, params)
  File "c:\robottemp\Python\lib\site-packages\selenium\webdriver\remote\remote_c
onnection.py", line 349, in execute
    return self._request(url, method=command_info[0], data=data)
  File "c:\robottemp\Python\lib\site-packages\selenium\webdriver\remote\remote_c
onnection.py", line 396, in _request
    response = opener.open(request)
  File "c:\robottemp\Python\lib\urllib2.py", line 394, in open
    response = self._open(req, data)
  File "c:\robottemp\Python\lib\urllib2.py", line 412, in _open
    '_open', req)
  File "c:\robottemp\Python\lib\urllib2.py", line 372, in _call_chain
    result = func(*args)
  File "c:\robottemp\Python\lib\urllib2.py", line 1199, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "c:\robottemp\Python\lib\urllib2.py", line 1140, in do_open
    h = http_class(host, timeout=req.timeout) # will parse host:port
  File "c:\robottemp\Python\lib\httplib.py", line 693, in __init__
    self._set_hostport(host, port)
  File "c:\robottemp\Python\lib\httplib.py", line 718, in _set_hostport
    raise InvalidURL("nonnumeric port: '%s'" % host[i+1:])
httplib.InvalidURL: nonnumeric port: '3128"'```

При чем если меняю значение PROXY_IP на 
PROXY_IP = "myproxy.com.ua"
все равно выводтсия такая же ошибка 
httplib.InvalidURL: nonnumeric port: '3128"'
В первом случае не понимаю почему 3128 считается нечисловым, 
а во втором - откуда берется этот порт 3128, если в коде вообще нигде такое число не упоминается.

(Mykhailo Poliarush) #2

Оформите пост так чтобы код был читабельным Как правильно форматировать код, чтобы повысить читабельность вашей темы тогда уже можно будет говорить об решении вашей проблемы.


(kom) #3

Оказалось что проблема была в самом драйвере, скачал новый chromedriver, новые selenium python bindings и скрипт заработал в другой сети, где нет прокси.
Но остается проблема с прокси:
если использую

chrome = webdriver.Chrome(chrome_options=chrome_options)

То браузер открывается, идет переход на сайт, но там ничего не отображается (Веб-страница недоступна).