Wie kann ich den Netzwerkverkehr mit Selenium-Webdriver und Browsermob-Proxy auf Python erfassen?

Ich möchte den Netzwerkverkehr mit Selenium Webdriver auf Python erfassen. Daher muss ich einen Proxy verwenden (wie BrowserMobProxy)

Wenn ich webdriver benutze.Chrome

from browsermobproxy import Server

server = Server("~/browsermob-proxy")

server.start()
proxy = server.create_proxy()

from selenium import webdriver
co = webdriver.ChromeOptions()
co.add_argument('--proxy-server={host}:{port}'.format(host='localhost', port=proxy.port))

driver = webdriver.Chrome(executable_path = "~/chromedriver", chrome_options=co)

proxy.new_har
driver.get(url)
proxy.har # returns a HAR 

for ent in proxy.har['log']['entries']:
    print ent['request']['url']

die Webseite wird korrekt geladen und alle Anfragen sind in der HAR-Datei verfügbar und zugänglich. Aber wenn ich webdriver.Firefox benutze:

# The same as above
# ...
from selenium import webdriver
profile  = webdriver.FirefoxProfile()
driver = webdriver.Firefox(firefox_profile=profile, proxy = proxy.selenium_proxy())

proxy.new_har
driver.get(url)
proxy.har # returns a HAR

for ent in proxy.har['log']['entries']:
    print ent['request']['url']

Die Webseite kann nicht richtig geladen werden und die Anzahl der Anforderungen in der HAR-Datei ist kleiner als die Anzahl der Anforderungen, die sein sollten.

Hast du eine Idee, was das Problem der Proxy-Einstellungen im zweiten Code ist? Wie soll ich das Problem beheben, damit webdriver.Firefox für meinen Zweck ordnungsgemäß verwendet wird?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage