2017-08-02 27 views

回答

0

你想在哪里做这个日志记录?如果您尝试在自定义代理服务器上记录此日志,那么这些日志将仅在运行集线器的计算机上可用。那是你要的吗 ?如果是的话,那么这里就是你应该做的是:

org.openqa.grid.internal.listeners.CommandListener#afterCommand一个重载的变体(此方法应该是在你建立你的DefaultRemoteProxy扩展对象提供),从javax.servlet.http.HttpServletRequest中提取此信息通过阅读它的实体价值,然后将其转化为适当的有效载荷。

下面是从org.openqa.grid.selenium.proxy.DefaultRemoteProxy您的定制版afterCommand()(或)beforeCommand()方法怎么能是这样的:

org.openqa.grid.web.servlet.handler.SeleniumBasedResponse ar = new org.openqa.grid.web.servlet.handler.SeleniumBasedResponse(response); 
if (ar.getForwardedContent() != null) { 
    System.err.println("Content" + ar.getForwardedContent()); 
} 

如果这不是你想要的,那么你应该看借力EventFiringWebDriver。看看下面的博客,了解如何使用EventFiringWebDriverEventFiringWebDriver不需要在网格侧进行定制,它只是需要您使用EventFiringWebDriver,它将包含一个现有的RemoteWebDriver对象,并且您注入的侦听器将帮助您获取该对象。

+0

我想在自定义代理中执行此操作。 我没有问题的请求(其中有命令类型:点击,网址..)但我无法得到该命令的响应,例如getTitle命令我想访问返回的“标题”。 –

+0

@ElheniMokhles - 我已经更新了我的答案,向您展示了如何完成此操作的代码片段。 –

+0

执行getForwardedContent()时,我总是得到null(都在beforeCommand和afteCommand中) –