从Java中的GET POST请求方法中捕获开发人员工具中的URI,资源名称

时间:2015-03-20 20:51:26

标签: java http selenium

我这样做是为了增强Selenium Webdriver脚本。 我已经尝试过使用带有Java的httpclient和许多其他东西,但我无法到达任何地方。 请帮忙!

这是情景:

在点击按钮的网页中执行某项操作后, GET / POST方法可以在Chrome的开发者工具中看到。

我在这里以谷歌为例。

我需要的是收集所有资源名称,直到出现某个资源(如果您在Chrome中打开开发人员工具并导航到google.com,则在最左侧列的“网络”标签下,您会看到tia.png,只是一个例子。)

应该实现两件事:

  1. 确保加载了某个资源

  2. 在执行任何其他操作之前,确保页面已完全加载(所有GET / POST方法都已转移)。

  3. httpclient,httpurlconnection只捕获一个请求,但页面发送了大量请求。我们如何捕获所有这些?

2 个答案:

答案 0 :(得分:0)

通过使用http apache客户端,您可以使用以下内容: - 要解决您的问题,您可以获取响应代码“response.getStatusLine()。getStatusCode()”并检查预期的响应代码,并且还可以使用响应的结果。

URI url = new URI("String URI");
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
HttpResponse response = HttpClientBuilder.create().build().execute(post);
        System.out.println("Response Code : " + response.getStatusLine().getStatusCode());
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
    result.append(line);
}
System.out.println("Ressponse 1 >>>>"+result.toString());

并且,如果您需要在帖子请求中发送参数,例如: -

List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair("username", "yourusername"));
urlParameters.add(new BasicNameValuePair("password", "yourPassword"));
post.setEntity(new UrlEncodedFormEntity(urlParameters));

答案 1 :(得分:0)

这是我的问题的答案:

https://kenneth.io/blog/2014/12/28/taking-chrome-devtools-outside-the-browser/ https://github.com/auchenberg/chrome-devtools-app

来自博客:

  

这是一个独立的应用程序,可以在自己的进程中运行Chrome DevTools。   它由node-webkit提供支持,并且能够在Windows,Mac和Windows上运行   Linux,完全独立于Chrome。

The GET,POST,resource names seen under the Network tab in Chrome Dev tool 我想捕获应用程序和服务器之间的所有请求(如屏幕截图所示),以便我可以确保所有关键资源,请求来回传输以及页面已完全加载。 我无法执行此操作,以编程方式执行我们在此处图片中“网络”标签下的Chrome开发工具中看到的内容。

Kenneth的工作让我们在一定程度上实现了这一目标。