【发布时间】:2019-07-16 08:13:57
【问题描述】:
我正在尝试将由 Selenium(java 绑定)驱动的 UI 测试与集成层隔离开来。我想拦截通过浏览器的 xhr 调用并发送回模拟响应。
我尝试配置代理(使用 browsermob)并且可以看到请求通过它。但是现在我不确定如何通过拦截 xhr 调用来返回模拟响应。
Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);
proxy.addRequestFilter((request, content, messageInfo) -> {
if (messageInfo.getOriginalUrl().contains("v1/listings/closing.json")) {
String messageContents = content.getTextContents();
System.out.println("messageContents:: " + messageContents);
}
return null;
});
try {
String hostIp = Inet4Address.getLocalHost().getHostAddress();
seleniumProxy.setHttpProxy(hostIp + ":" + proxy.getPort());
seleniumProxy.setSslProxy(hostIp + ":" + proxy.getPort());
} catch (UnknownHostException e) {
e.printStackTrace();
}
DesiredCapabilities seleniumCapabilities = new DesiredCapabilities();
seleniumCapabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
ChromeOptions options = new ChromeOptions();
options.merge(seleniumCapabilities);
webDriver = new ChromeDriver(options);
在针对真实/实时网站而不是本地主机进行测试时,我希望将模拟响应提供给 UI。
【问题讨论】: