2

Pythonでbrowsermob-proxy-pyでBrowserMob Proxyを使用しようとしています。ページからのすべてのリクエストの URL を取得する必要があります。しかし、HAR ファイルに https 要求が見つかりません。Selenium と BrowserMob Proxy がリモート マシンで実行されています。

コード例:

from selenium import webdriver
import browsermobproxy

SELENIUM_EXECUTOR = 'http://<remote_ip>:4444/wd/hub'
SELENIUM_DESIRED_CAPABILITIES = {
        'browserName': 'firefox',
        'version': '20.0.0',
        'javascriptEnabled': True,
}

prox = browsermobproxy.Client('<remote_ip>:8080')
driver = webdriver.Remote(
    command_executor=SELENIUM_EXECUTOR,
    desired_capabilities=SELENIUM_DESIRED_CAPABILITIES,
    proxy=prox)

url_to_get = 'http://google.ru'
prox.new_har()
driver.get(url_to_get)
for ent in prox.har['log']['entries']:
    print ent['request']['url']

driver.quit()
prox.close()

この例では、5 つの http 要求が返されます。

しかし、url_to_get を「https://...」に変更すると、3 つの http リクエストのみが表示され、https リクエストは表示されません。

httpsヘッダーもキャッチする方法を知っている人はいますか?

4

1 に答える 1

2

Python の部分について話すことはできませんが、java/junit セレン テストでは、セレンの http と https プロキシの両方を指定する必要がありまし

私はセレンの最新(2.39)バージョンを信じています.httpsプロキシを指定することは推奨されておらず、代わりにパラメータがsslプロキシを指定しています.

ブラウザーを起動すると、(java) コードは次のようになります (同等の python を見つけるには、あちこち探し回る必要があります。申し訳ありません!)。

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
//Proxy is from the namespace org.openqa.selenium
Proxy proxy = new Proxy();
//10.0.53.132 == our browsermob proxy server
proxy.setHttpProxy("10.0.53.132:8888");
proxy.setSslProxy("10.0.53.132:8888");
capabilities.setCapability(CapabilityType.PROXY,proxy);
this.driverCapabilities = capabilities;
于 2014-01-06T17:10:54.537 に答える