2016-10-30 9 views
2

Я работаю над загрузкой HAR из Chrome для YouTube через Selenium Python Script. фрагмент кода:Принудительный драйвер Selenium Chrome для использования QUIC вместо TCP

chrome_options = webdriver.ChromeOptions() 
chrome_options.add_argument("--proxy-server={0}".format(url)) 
chrome_options.add_argument("--enable-quic") 

self.driver = webdriver.Chrome(chromedriver,chrome_options = chrome_options) 

self.proxy.new_har(args['url'], options={'captureHeaders': True}) 
self.driver.get(args['url']) 
result = json.dumps(self.proxy.har, ensure_ascii=False) 

Я хочу QUIC использоваться всякий раз, когда я загружаю HAR, но когда я смотрю на пакеты через драйвер Wireshark Селен использует только TCP. Есть ли способ заставить Chrome-драйвер использовать QUIC? Или есть ли альтернатива BMP?

Аналогичная вещь была задана для Firefox в этом вопросе How to capture all requests made by page in webdriver? Is there any alternative to Browsermob?, и было решение с Selenium самостоятельно без необходимости в BMP. Так это возможно для Chrome?

ответ

0

Обходным путем для этой проблемы может быть: запустите Chrome в обычном режиме (с профилем по умолчанию или создайте другой профиль) и включите quic вручную. Затем запустите chromedriver с загруженным профилем.

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options 
options = webdriver.ChromeOptions() 
options.add_argument("user-data-dir=/home/user/.config/google-chrome") 
driver = webdriver.Chrome(executable_path="/home/user/Downloads/chromedriver", chrome_options=options)