【问题标题】:Selenium: does browsermob can work on RemoteWebDriver?Selenium:browsermob 可以在 RemoteWebDriver 上运行吗?
【发布时间】:2012-02-01 12:07:05
【问题描述】:

我正在尝试使用 browsermob 来处理 http 请求,但我发现它似乎无法在远程模式下工作,有人对此有任何想法吗?感激不尽!

在本地运行良好 WebDriver driver = new FirefoxDriver(capabilities)

但实际上在我们的工作环境中,我们总是在远程服务器上运行案例,如下所示: WebDriver driver = new RemoteWebDriver(new URL("http://d-sjc-00517444.corp.com:4444/wd/hub"),capability);

然后firefox无法打开页面说:

代理服务器拒绝连接 Firefox 被配置为使用拒绝连接的代理服务器。 检查代理设置以确保它们是正确的。 请联系您的网络管理员以确保代理服务器正常工作。

【问题讨论】:

  • “不在远程模式下工作”是什么意思。你有详细信息吗?
  • 你在做什么,你是怎么做的?

标签: selenium httprequest


【解决方案1】:

我猜你正在使用Selenium Grid

您必须在您的网格的HUB 机器上启动Browsermob Proxy API。 像这样,您可以执行this 页面上描述的所有必需的REST API 调用。

【讨论】:

    【解决方案2】:

    简单猜测:

    • 您的应用程序可能位于防火墙后面,因此如果您通过 webdriver 对其进行测试,则您在 Intranet 内部,如果您远程执行此操作,您可能会遇到无法在 Internet 之外找到该应用程序的问题

    • 你在初始化 ScreenShotRemoteWebDriver 时做了一些事情

    但没有细节,几乎不可能提供任何解决方案

    【讨论】:

      【解决方案3】:

      我猜你的Selenium Grid 正在http://d-sjc-00517444.corp.com:4444 上运行,但你的Java 客户端正在另一台机器上运行。

      我猜你的代码在 WebDriver 上设置代理是这样的:

      capabilities.setCapability(CapabilityType.PROXY, proxy);
      

      这将导致浏览器将所有请求转发到在浏览器机器上运行的代理,而不是您的 Java 客户端机器。

      在运行 Selenium 的机器上

      • 启动代理服务器(在运行 Selenium 的机器上)

        sh browsermob-proxy -port 9090
        
      • 启动代理

        curl -X POST http://localhost:9090/proxy
        {"port":9091} 
        

      【讨论】:

        猜你喜欢
        • 2010-09-19
        • 2021-05-04
        • 2012-06-20
        • 2012-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多