使用httpclient 调用selenium webdriver

发表于:2021-5-26 09:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:to be crazy    来源:博客园


  我这里使用的是Gson 和 httpclient
  首先,起一个remote sever
  java -Dwebdriver.ie.driver="IEDriverServer.exe"  
    -Dwebdriver.chrome.driver="chromedriver.exe"  -jar selenium-server-standalone-2.48.0.jar
  这里要用到httpclient的Post 和delete method
  创建一个httpclient对象
  HttpClient httpClient = HttpClients.createDefault();
  创建一个post请求
  JsonObject setCapability = new JsonObject();
  setCapability.addProperty("browserName","firefox");
  JsonObject capability = new JsonObject();
  capability.add("desiredCapabilities",setCapability);
  HttpPost httpPost = new HttpPost(base);
  创建一个delete 请求
  url = base + sessionId ;
  HttpDelete httpDelete = new HttpDelete(url);
  从respose 中获取session ID
  HttpResponse response = httpClient.execute(httpPost);
  try {
  HttpEntity entity = response.getEntity();
  if (entity != null) {
  System.out.println("Response content length: "
  + entity.getContentLength());
  String resultEntity = EntityUtils.toString(entity);
  System.out.println("Response content: " + resultEntity);
  JsonObject result= new JsonParser().parse(resultEntity).getAsJsonObject();
  JsonElement  sessionIdJson = result.get("sessionId");
  if(!sessionIdJson.isJsonNull())
  sessionId =sessionIdJson.getAsString();
  JsonElement  valueJson = result.get("value");
  if(!valueJson.isJsonNull())
  {
  JsonObject tm=valueJson.getAsJsonObject();
  JsonElement elementIdJson = tm.get("ELEMENT");
  if(elementIdJson!=null)
  elementId=elementIdJson.getAsString();
  }
  }
  } finally {
  ((Closeable) response).close();
  }
  运行效果:
    
  了解selenium 原理究竟有什么意义?
  大多数人都会使用selenium去做自动化,但是不是每个人都了解selenium的原理,如果能掌握selenium原理。
  可以改造selenium API,使用webdriver protocol去做一些能够完善自动化测试框架的事情。
  比如,也许你在selenium自动化过程中会遇到get打开页面打不开,为了保证你脚本的健壮性,这时候你可以加入一段httprequest去获取。
  response的的关键值判断,如果不是2开头的可以设置refresh,再比如需要做一些准备性工作,比如环境配置也可以使用。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号