带有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) 个答案