Заставить Selenium Chrome Driver использовать QUIC вместо TCP
Я работаю над загрузкой HAR из Chrome для YouTube через Selenium Python Script. Фрагмент кода:
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 Selenium, используется только TCP. Есть ли способ заставить Chrome Driver использовать QUIC? Или есть альтернатива BMP?
В этом вопросе Firefox был задан аналогичный вопрос. Как захватить все запросы, сделанные страницей в веб-драйвере? Есть ли альтернатива Browsermob? и было решение с одним только Селеном без потребности какого-либо BMP. Так возможно ли это для Chrome?
1 ответ
Обойти эту проблему можно следующим образом: нормально запустить 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)