【问题标题】:BrowserMob Proxy + selenium capturing https requestsBrowserMob Proxy + selenium 捕获 https 请求
【发布时间】:2013-09-16 13:05:57
【问题描述】:

我正在尝试在 Python 上使用 BrowserMob Proxy 和 browsermob-proxy-py。我需要从页面捕获所有请求的 URL。但我在 HAR 文件中找不到 https 请求。 Selenium 和 BrowserMob 代理正在远程机器上运行。

示例代码:

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 标头吗?

【问题讨论】:

    标签: python selenium proxy


    【解决方案1】:

    我无法与 python 对话,但在我们的 java/junit selenium 测试中,我必须为 selenium 指定 http 和 和 https 代理。

    我相信 selenium 的最新 (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;
    

    【讨论】:

    • browsermob 服务器是否与被测网站在同一主机上?
    • 那是很久以前的事了……! :) 但是不,browserMob 代理没有从应用服务器运行。从那时起,Selenium 进行了一些修改。所以你的里程可能会有所不同。
    • 我只是想了解代理服务器是否可以通过安装在同一台服务器上并将其附加到 https 上(在 nginx 的帮助下使用有关证书密钥的信息)来扭转 https。
    猜你喜欢
    • 2012-08-12
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多