Активировать Ecc для Browsermob / Selenium - PullRequest
0 голосов
/ 06 сентября 2018

У меня проблема с тем, что тестирование с Selenium и browsermob становится очень медленным для определенных сайтов. Вот мой текущий код для настройки сервера и прокси:

    server = Server(path_browsermob)
    server.start()
    proxy = server.create_proxy()
    co = webdriver.ChromeOptions()
    co.add_argument('--proxy-server={host}:{port}'.format(host='localhost', port=proxy.port))
    driver = webdriver.Chrome(path_driver, chrome_options=co)

Я уже читал, что одним из способов ускорения тестирования является использование сертификатов EC вместо RSA. Однако, как мне активировать ECC с кодом выше?

1 Ответ

0 голосов
/ 13 сентября 2018

У меня возник тот же вопрос после того, как я узнал об этой «проблеме» с браузер-моб-прокси и сертификатами SSL.

После поиска в библиотеке Python browsermob-proxy выглядит, как если бы дополнительные параметры передавались в URL при создании прокси.

С этим вы сможете передавать любой из параметров, описанных в Документация API , в create_proxy ().

Вот мой фрагмент кода (хотя я не уверен, как запросить прокси, чтобы узнать, действительно ли он установлен).

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from browsermobproxy import Server

#Create proxy server
bmp_server_opts = {"port": 8080}
bmp_server = Server("browsermob-proxy-2.1.4/bin/browsermob-proxy", options = bmp_server_opts)
bmp_server.start()
time.sleep(1)
proxy_server = bmp_server.create_proxy({"useEcc": True, "trustAllServers": True})
time.sleep(1)
selenium_proxy = proxy_server.selenium_proxy()

#Create Firefox options
firefox_opts = webdriver.FirefoxOptions()
firefox_profile = webdriver.FirefoxProfile()
firefox_opts.set_headless()
firefox_profile.set_proxy(selenium_proxy)

#Fire up a Firefox browser
firefox_browser = webdriver.Firefox(firefox_profile = firefox_profile, firefox_options = firefox_opts)
wait_load = WebDriverWait(firefox_browser, 10)
proxy_server.new_har("103398", options = {'captureHeaders': True, "captureContent": True})

Хотя по-прежнему были некоторые проблемы даже с установкой useEcc в значение true, и я закончил тем, что добавил trustAllServers, который игнорирует проверку ssl все вместе, но я не уверен, что это будет правильным способом, если вам нужно близко к истинному опыту пользователя , В любом случае у меня все еще довольно медленные соединения SSL / TLS.

...