2017-08-02 45 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中) –