Selenium Grid Proxy:如何在命令执行后获得响应

时间:2017-08-02 12:31:55

标签: selenium-grid

我创建了一个Selenium Grid代理,我想记录每个完成的命令,问题是我无法找到一种方法来获取命令的响应,例如在" GetTitle"之后命令我想获得"标题"返回。

1 个答案:

答案 0 :(得分:0)

您希望在何处完成此日志记录?如果您尝试在自定义代理服务器上记录此日志,则这些日志仅在运行集线器的计算机上可用。那是你要的吗 ?如果是的话,那么你应该如何做到这一点:

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

以下是afterCommand()的自定义版本中的beforeCommand()(或)org.openqa.grid.selenium.proxy.DefaultRemoteProxy方法的显示方式:

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对象,你注入的侦听器将会帮助你做到这一点。