2011-06-17 66 views
1

我想知道如何使用Selenium.captureNetworkTraffic捕獲HTTP請求,然後解析出一個值來傳遞查詢字符串。Selenium captureNetworkTraffic傳遞值到字符串

啓動時,測試下的應用程序會生成一個UniqueID。該信息未顯示給用戶的URL。

我需要捕獲唯一ID,然後將其傳遞給查詢字符串以完成一系列請求。比如我需要捕捉Example123在網絡業務,然後分析出的數據,並將其納入其他查詢字符串

http://www/UnqiueID=EXAMPLE123&xxx=2&xxx= 

我看了http://www.eviltester.com/index.php/2010/05/26/a-selenium-capturenetworktraffic-example-in-java/但這似乎集中在網頁,鏈接等大小

回答

1

不要被David Burns和Corey Goldberg對captureNetworkTraffic接口的具體使用所誤導 - 它可能只是你所需要的。他們正在總結事務的某些屬性,但接口實際上會返回所有響應標頭,其中一個標頭可能包含您要查找的內容。由硒服務器返回的實際數據看起來像這樣(大多來自the source code解除):

[ 
    { 
     statusCode: 200, 
     method: 'GET', 
     url: 'http://foo.com/index.html', 
     bytes: 12422, 
     start: '2009-03-15T14:23:00.000-0700', 
     end: '2009-03-15T14:23:00.102-0700', 
     timeInMillis: 102, 
     requestHeaders: [ 
      { 
       name: 'Foo', 
       value: 'Bar' 
      }, 
      { 
       name: 'Name2', 
       value: 'Value2' 
      }, 
      ... 
     ], 
     responseHeaders: [ 
      { 
       name: 'Baz', 
       value: 'Blah' 
      }, 
      { 
       name: 'Name3', 
       value: 'Value3' 
      }, 
      ... 
     ] 
    }, 
    { 
     ... 
    }, 
    ... 
] 

這就是說,你想要的值可能是提供給一個Cookie的瀏覽器,你可以從硒更多檢索只需使用getCookieByName命令。

+0

不幸的是,信息沒有存儲在cookie中。我能夠獲得包含UniqueID的網絡流量,現在我只需要弄清楚如何識別和提取僅傳遞的數字。 這是我到目前爲止 String Networktraffic = selenium.captureNetworkTraffic(「XML」); System.out.println(Networktraffic); Pattern pattern = Pattern.compile(「regex:UniqueID = [0-9]」);匹配匹配器= pattern.matcher(Networktraffic); 匹配匹配器= pattern.matcher(Networktraffic); (matcher.find()){ System.out.println(matcher.group(1)); 我可以看到這在XML流量url =「http:// www/LoadDatabaseFromWS?UniqueID = 96472」 – BPK