browsermob-proxy icon indicating copy to clipboard operation
browsermob-proxy copied to clipboard

can browsermob-proxy support seleniume grid?

Open ChrisD1990 opened this issue 4 years ago • 3 comments

hi,

i meet a issue, as our automation is seleniume grid, i have 1 hub node and 9 salve node, now i want to use the browsermorb-proxy, I don’t know which salve node it will run automation case, so can you help tell me should i to do? thanks

Below is my code: public void startproxy(String url) { BrowserMobProxy proxy = new BrowserMobProxyServer(); proxy.start(0); // get the Selenium proxy object RemoteWebDriver rDriver = (RemoteWebDriver) ((WebDriverFacade) getDriver()).getProxiedDriver(); String browser = rDriver.getCapabilities().getBrowserName().toLowerCase(); // String browser = ConfigParser.getBrowser(); Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);

	String ipAddress = new NetworkUtils().getIp4NonLoopbackAddressOfThisMachine().getHostAddress();
    int port = proxy.getPort();
    seleniumProxy.setHttpProxy(ipAddress + ":" + port);

	if (browser.equalsIgnoreCase("chrome")) {
		DesiredCapabilities chromeCapabilities = DesiredCapabilities.chrome();
		chromeCapabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
		String chromeBinary = System.getProperty(" ");
		if (chromeBinary == null || chromeBinary.equals("")) {
			String os = System.getProperty("os.name").toLowerCase().substring(0, 3);
			chromeBinary = "C:\\Automation\\SeleniumGrid\\chromedriver"+ ".exe";
			System.setProperty("webdriver.chrome.driver", chromeBinary);
			ChromeOptions options = new ChromeOptions();
			options.addArguments("--start-maximized");
		}
		proxy.enableHarCaptureTypes(CaptureType.getAllContentCaptureTypes());
		driver = new RemoteWebDriver(chromeCapabilities);

// driver = new ChromeDriver(chromeCapabilities); } else { System.out.println("Using default browser as firefox"); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); driver = new FirefoxDriver(capabilities); } try { proxy.newHar("swtestacademy"); driver.get(url); try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } Har har = proxy.getHar(); File harFile = new File("academy.har"); har.writeTo(harFile); } catch (IOException ioe) { ioe.printStackTrace(); } // driver.quit(); // proxy.stop(); }

ChrisD1990 avatar Oct 13 '20 07:10 ChrisD1990

while open page , always show cannot connect network, can you help me see see?

jjqi92 avatar Dec 11 '20 07:12 jjqi92

Uploading image.png…

jjqi92 avatar Dec 11 '20 07:12 jjqi92

private static DesiredCapabilities startBrowserMobProxy() {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    BrowserMobProxy browserMobProxy = new BrowserMobProxyServer();
    browserMobProxy.setTrustAllServers(true);
    browserMobProxy.start(9092);
    browserMobProxy.enableHarCaptureTypes(CaptureType.getAllContentCaptureTypes());

    String hostIp = new NetworkUtils().getIp4NonLoopbackAddressOfThisMachine().getHostAddress();
    Proxy proxy = ClientUtil.createSeleniumProxy(new InetSocketAddress(hostIp, browserMobProxy.getPort()));


    proxy.setHttpProxy(hostIp + ":" + browserMobProxy.getPort());
    proxy.setSslProxy(hostIp + ":" + browserMobProxy.getPort());

    capabilities.setCapability(CapabilityType.PROXY, proxy);
    capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    capabilities.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS, true);

    browserMobProxyThreadLocal.set(browserMobProxy);
    System.out.println("jvm-assign port for bmp:" + browserMobProxy.getPort());
    return capabilities;
}

jjqi92 avatar Dec 11 '20 07:12 jjqi92