Python-使用代理(Browsermob)与远程Webdriver



我正在尝试使用Browsermob代理检查网站上的网络流量。通过运行以下命令:我发现代理服务器拒绝连接:

"代理服务器拒绝连接"firefox被配置为使用拒绝连接的代理。"

我还没有找到一个例子在python设置代理与远程web驱动程序。

    server = Server("location/browsermob-proxy-2.0-beta-9/bin/browsermob-proxy")
    server.start()
    proxy = server.create_proxy()
    from selenium import webdriver
    profile  = webdriver.FirefoxProfile()
    profile.set_proxy(proxy.selenium_proxy())
    driver = webdriver.Firefox(firefox_profile=profile)
    proxy.new_har("impression")
    driver.get("https://www.google.com/")
    server.stop()
    driver.quit()
    #success

from browsermobproxy import Server
server = Server("location/browsermob-proxy-2.0-beta-9/bin/browsermob-proxy")
server.start()
our_proxy = server.create_proxy()
from selenium import webdriver
our_browser = browser.upper()
desired_capabilities = webdriver.DesiredCapabilities.FIREFOX # Default
desired_capabilities["version"] = configs[browser]["browser-version"]
desired_capabilities["platform"] = configs[browser]["os"]
desired_capabilities["idle-timeout"] = "25"
desired_capabilities["max-duration"] = "300"
desired_capabilities["command-timeout"] = "30"
desired_capabilities["name"] = test_name
desired_capabilities["browserName"] = browser
desired_capabilities['loggingPrefs'] = {"browser":"ALL"}
this_proxy = Proxy({
   "httpProxy":our_proxy.selenium_proxy().httpProxy,
   "sslProxy":our_proxy.selenium_proxy().sslProxy,
   "proxyType":"MANUAL",
  "autodetect":False
})
this_proxy.add_to_capabilities(desired_capabilities)
driver = webdriver.Remote(
    desired_capabilities = desired_capabilities
)
proxy.new_har("impression")
    driver.get("https://www.google.com/")
    #fails
    #urllib2.URLError: <urlopen error [Errno 61] Connection refused>
server.stop()
driver.quit()

desired_capabilities分别用于远程和firefoxprofile:

{'name': 'abdc', 'javascriptEnabled': True, 'idle-timeout': '25', 'command-timeout': '30', 'max-duration': '300', 'platform': 'Windows 7', 'browserName': 'firefox', 'version': '28', 'proxy': {'proxyType': 'MANUAL', 'sslProxy': 'localhost:9117', 'httpProxy': 'localhost:9117'}, 'loggingPrefs': {'browser': 'ALL'}}

{u'rotatable': False, u' takesscreenshot ': True, u' acceptsslcerts ': True, u' cssselectorsenabled ': True, u' javascriptenabled ': True, u' databaseenabled ': True, u' locationcontextenabled ': True, u'platform': u' darwin ', u' browsername ': u'firefox', u'version': u'29.0.1', u' nativeevents ': False, u' applicationcacheenabled ': True, u' webstorageenabled ': True, u' browserconnectionenabled ': True, u' handlesalerts ': True}

我已经看到这张票,上面说问题已经解决了;但似乎并非如此。

https://code.google.com/p/selenium/issues/detail?id=2051

我之前也遇到过同样的错误。这通常是由于在同一端口上运行的进程不允许启动browsermob代理。一般来说,Apache Tomcat使用相同的服务器。

更改Browsermob的端口。

server = Server(browsermob_location,options={'port':port_browsermob})

这里port_browsermob是你可以指定的端口。

相关内容

  • 没有找到相关文章

最新更新