Selenium captureNetworkTraffic将值传递给字符串

时间:2011-06-17 16:25:37

标签: java selenium

我想知道如何使用Selenium.captureNetworkTraffic捕获HTTP请求,然后解析出一个值以传递查询字符串。

启动测试中的应用程序后会生成一个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 个答案:

答案 0 :(得分:1)

不要误导David Burns和Corey Goldberg对captureNetworkTraffic界面的具体使用 - 它可能只是你所需要的。它们总结了事务的某些属性,但接口实际上返回了所有响应头,其中一个可能包含您要查找的内容。 Selenium服务器返回的实际数据如下所示(大部分从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命令更轻松地从Selenium中检索。