2017-04-06 9 views
3

私はレスポンスやその他のネットワーキングを傍受するために、UI自動テスト用のセレン(chrome)フレームワークにbrowsermob proxyを埋め込むようにしています。ブラウザのプロキシを使用してセレンで安全でないhttpsにアクセスできない

説明:browsermobプロキシを使用してwebdriverを

セレン及びそれだけで正常に動作します - HTTPおよびセキュアなHTTPS URLのOKです。私は無担保HTTPSのURLに移動しようとしているとき、私は、このクロムのエラーを取得: ERR_TUNNEL_CONNECTION_FAILED

ここに私のpythonのコードは次のとおりです。

class Browser(object): 
    display = None 
    browser = None 

    def __init__(self, implicitly_wait_seconds=10, is_visible=True, display_size=None, browser_name='chrome'): 
     if not is_visible: 
      self.display = Display(display_size) 
     self.server = Server('/home/erez/Downloads/browsermob-proxy-2.1.4/bin/browsermob-proxy') 
     self.server.start() 
     self.proxy = self.server.create_proxy() 
     self.capabilities = DesiredCapabilities.CHROME 
     self.proxy.add_to_capabilities(self.capabilities) 
     self.proxy.new_har("test", options={'captureHeaders': True, 'captureContent': True}) 
     self.start_browser(display_size, implicitly_wait_seconds, browser_name) 

    def __enter__(self): 
     return self 

    def __exit__(self, _type, value, trace): 
     self.close() 

    def start_browser(self, display_size, implicitly_wait_seconds=10, browser_name='chrome'): 
     if browser_name == 'chrome': 
      chrome_options = Options() 
      # chrome_options.add_argument("--disable-extensions") 
      chrome_options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors"]) 
      chrome_options.add_argument("--ssl-version-max") 
      chrome_options.add_argument("--start-maximized") 
      chrome_options.add_argument('--proxy-server=%s' % self.proxy.proxy) 
      chrome_options.add_argument('--ignore-certificate-errors') 
      chrome_options.add_argument('--allow-insecure-localhost') 
      chrome_options.add_argument('--ignore-urlfetcher-cert-requests') 
      self.browser = webdriver.Chrome(os.path.dirname(os.path.realpath(__file__)) + "/chromedriver", 
              chrome_options=chrome_options, desired_capabilities=self.capabilities) 
      self.browser.implicitly_wait(implicitly_wait_seconds) 

答えて

1

私はBrowserMobプロキシを使用してSSLプロキシのために同じ問題に直面しました。このためには、これで定義されているブラウザに証明書をインストールする必要がありますlink

文書の最後に移動すると、「SSLサポート」セクションが表示されます。ブラウザにca-certificate-rsa.cerをインストールすると、SSLプロキシでの問題はなくなります。

関連する問題