关闭

通过缓存对象路径的方式提高RFT的对象识别效率

发表于:2012-10-17 10:30

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

 作者:dreamever    来源:51Testing软件测试博客

  有了这个方法,我们就可以传入一个TestObject对象来获取到它的xpath。需要注意的是,通过脚本读取出来的TD、TR其classIndex是从0开始的,但是在IE和XPATH中所有元素的位置是从1开始的,这点切记。

public String getTestObjectTreeStr(TestObject to, String id, String value) {

  if(to == null){
   return "null";
  }
  
  StringBuffer xpath = new StringBuffer();
  addPropertyToCatch(to, id, value, xpath);
  this.getTestObjectProperty(to, xpath);

  String path = xpath.toString();
  String rs = parseXpath(path);
  return rs += "[1]";
 }

  获取到对象的XPATH路径,我们就可以将对象路径字符串写入缓存文件,示意代码如下:

public void writeXpathToFile(String ObjectID, String xpath, String filename) {
  File file = new File(filename);

  try {
   if (this.isObjectXpathExists(ObjectID, file)) {
    this.updataXpathbyObjectID(ObjectID, xpath, filename);
   } else {

    BufferedWriter writer = new BufferedWriter(new FileWriter(file,
      true));

    writer.write(ObjectID + "=" + xpath);
    writer.write("\r\n");

    writer.flush();
    writer.close();
   }

  } catch (IOException e) {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }

  String rootStr = this.getFirstRootStr(xpath);
  String rootStr_ID = ObjectID + "_head";
  try {
   if (this.isObjectXpathExists(rootStr_ID, file)) {
    return;
   } else {

    BufferedWriter writer = new BufferedWriter(new FileWriter(file,
      true));
    writer.write(rootStr_ID + "=" + rootStr);
    writer.write("\r\n");
    writer.flush();
    writer.close();

   }

  } catch (IOException e) {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }
  file = null;
 }

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号