我尝试将BrowserMob Proxy’sWebDriver一起使用。我使用下一个代码:

public static void main(String[] args) throws Exception {

        String strFilePath = "";

        // start the proxy
        ProxyServer server = new ProxyServer(4455);
        server.start();
        //captures the moouse movements and navigations
        server.setCaptureHeaders(true);
        server.setCaptureContent(true);

        // get the Selenium proxy object
        Proxy proxy = server.seleniumProxy();

        // configure it as a desired capability
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(CapabilityType.PROXY, proxy);

        // start the browser up
        WebDriver driver = new FirefoxDriver(capabilities);

        // create a new HAR with the label "apple.com"
        server.newHar("assertselenium.com");

        // open yahoo.com
        driver.get("http://assertselenium.com");

        driver.get("http://assertselenium.com/2012/10/30/transformation-from-manual-tester-to-a-selenium-webdriver-automation-specialist/");

        // get the HAR data
        Har har = server.getHar();
        FileOutputStream fos = new FileOutputStream(strFilePath);
        har.writeTo(fos);
        server.stop();
        driver.quit();

    }


而我得到了下一个错误:The proxy server is refusing connections: Firefox is configured to use a proxy server that is refusing connections.

我也尝试使用端口browsermob-proxy.bat运行4455,然后在运行main时遇到下一个错误:

java.net.BindException: Address already in use: JVM_Bind


如何使用BrowserMob代理的?

最佳答案

用于说明代理的代码似乎是正确的。对于BindException,显而易见的是端口4455已经使用了某些东西。您可以检查它(在Windows计算机上,是从内存写入的):

netstat -ano | find "4455"


在Linux中,使用lsof -i:4455来获取PID并杀死它。
无论如何,对于您的代理拒绝连接,请尝试显式设置代理,看看您是否有运气,例如

proxy.setHttpProxy("localhost:4455");
proxy.setSslProxy("localhost:4455");


另外,请确保您使用的是FF和BMP的最新版本。

10-08 02:00