强制Selenium Chrome驱动程序使用QUIC而不是TCP

时间:2016-10-30 11:15:36

标签: python selenium-chromedriver browsermob-proxy quic

我正在通过Selenium Python Script从Chrome for YouTube下载HAR。 代码段:

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)

我想在每次下载HAR时都使用QUIC,但是当我通过Wireshark查看数据包时,Selenium驱动程序仅使用TCP。有没有办法强制Chrome驱动程序使用QUIC?或者BMP有替代品吗?

在这个问题How to capture all requests made by page in webdriver? Is there any alternative to Browsermob?中已经向Firefox提出了类似的问题,并且单独使用Selenium解决方案而不需要任何BMP。那么Chrome可能吗?

1 个答案:

答案 0 :(得分: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)