LINUX.ORG.RU

python + selenium + proxy


1

1

Как заставить тесты на селениуме вылезать в интернет через свою прокси (127.0.0.1) ? Сейчас оно запускает FF с включенным автоопределением прокси, которое указывает на корпоративную проксю с логином и паролем. Пробовал и не помогало:

  • Запускать java -jar selenium-server-standalone-2.26.0.jar -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128
  • Запускать java -jar selenium-server-standalone-2.26.0.jar -firefoxProfileTemplate «/home/spiro/.mozilla/firefox/44mp5v37.WebDriver» - где 44mp5v37.WebDriver - папка с профилем, в котором прокси настроен на 127.0.0.1
  • Писать такой код:
    PROXY_HOST='127.0.0.1'
    PROXY_PORT=3128
    
    fp = webdriver.FirefoxProfile()
    
    fp.set_preference('network.proxy.type', 1)
    fp.set_preference('network.proxy.http', PROXY_HOST)
    fp.set_preference('network.proxy.http_port', PROXY_PORT)
    fp.set_preference('network.proxy.ftp', PROXY_HOST)
    fp.set_preference('network.proxy.ftp_port', PROXY_PORT)
    fp.set_preference('network.proxy.ssl', PROXY_HOST)
    fp.set_preference('network.proxy.ssl_port', PROXY_PORT)
    fp.set_preference('network.proxy.no_proxies_on', '')
    
    
    browser = webdriver.Firefox(fp) # Get local session of firefox
    

    Прокси настраивается, но вылезает exception:

    selenium.common.exceptions.WebDriverException


В любом случае FF вываливается с Access Denied от корпоративной прокси.

★★
Ответ на: комментарий от zhuravlik

Спасибо, так заработало:

from selenium.webdriver.common import proxy, desired_capabilities
from selenium.webdriver.firefox import webdriver

p = proxy.Proxy({
    'proxyType': proxy.ProxyType().MANUAL,
    'httpProxy': '127.0.0.1:3128',
    })

capabilities = desired_capabilities.DesiredCapabilities().FIREFOX
p.add_to_capabilities(capabilities)
w = webdriver.WebDriver(capabilities=capabilities)
spiro ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.