有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带有BrowserMobProxy的java Selenium ReomteWebDriver提供空的HarEntries

我正在远程机器上运行selenium hub和node。代码从我的笔记本电脑上运行。 我可以看到配置工作正常,这意味着浏览器会话启动并进入页面并执行操作

但是在测试结束时,har条目是空的

以下是我的配置:

配置BrowserMobProxy

public void startProxy() {
        try {
            WebDriverEx.Browser browerType = WebDriverEx.Browser.valueOf(WebDriverEx.getInstance().getBrowser().toUpperCase());
            proxy = new BrowserMobProxyServer();
            proxy.setTrustAllServers(true);

            String ipAddressClient = new NetworkUtils().getIp4NonLoopbackAddressOfThisMachine().getHostAddress();
            String ipAddressServer = ipAddressClient;
            proxy.start(8888, InetAddress.getByName(ipAddressClient));
            proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT, CaptureType.REQUEST_HEADERS, CaptureType.RESPONSE_HEADERS);
            seleniumProxy = ClientUtil.createSeleniumProxy(proxy);
            int port = proxy.getPort();
            seleniumProxy.setHttpProxy("localhost:" + port);
            seleniumProxy.setSslProxy("localhost:"" + port);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

配置功能

    private DesiredCapabilities createDesiredCapabilities() {


        System.setProperty(CapabilityType.BROWSER_NAME, 
        System.getProperty("browser").toUpperCase());
        capabilities.merge(DesiredCapabilities.chrome());
        capabilities.setCapability(ChromeOptions.CAPABILITY, getChromeOptions());
        capabilities.setCapability(CapabilityType.PROXY, bmp.getSeleniumProxy());
        capabilities.setCapability("name", scenarioName+"_"+ System.getProperty("AutomationVersion"));
        capabilities.setCapability("build", scenarioName);
        capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        capabilities.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS, true);
 capabilities.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR,UnexpectedAlertBehaviour.IGNORE); //check it
        return capabilities;
    }

创建WebDriver

public void createWebDriver() throws Exception{
    System.setProperty("webdriver.chrome.driver", "Drivers\\chromedriver.exe");
    webDriver = new RemoteWebDriver(new URL("http:/ip.of.my.hub:4444/wd/hub"), capabilities);
            System.out.println("\n//******** Opening WebDriver for: -"+System.getProperty("browser").toUpperCase()+"- *************//\n");
    }

我很确定我没有正确配置代理,但不确定是哪个代理和哪个配置

据我所知,Selenium与代理交互,代理与BrowserMobProxy交互,后者与节点上的浏览器交互。 要做到这一点,节点上的浏览器需要获取BrowserMobProxy的地址,但这不起作用

我做错了什么


共 (0) 个答案