51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5091|回复: 2
打印 上一主题 下一主题

小技巧两则——RFT方法和纯JAVA

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-11-8 21:24:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题场景1:

  在使用RFT工具时,遇到一个比较特殊的情况,即:某个文本框限定了输入的字符类型(如只接受数字),而这个限定不是限定在键盘的输入上,它能让你输入任意字符,只是输入一个字符后它会马上判断是不是可接受的类型,如果不是,则会清空。那么同样的,这种控件还有一个特点,那就是:如果现在这个文本框中已经有一个数字了,我们从它的上一个控件使用tab键,此时光标在待输入的文本框中,我们会发现光标自动跑到原有数字的后面了,这时如果在代码中使用xxx.setText("String")方法来输入值的话将会出现问题。例如,原来在文本框中输入了数字10,现在回放脚本时,我们要让它输入20,那么回放时会发现,这个文本框的值变成了1020了,显然不是我们想要的。

解决方法:

  设置文本框的值除了可以使用xxx.setText("String you want to input")外,其实RFT还提供了很多类似的方法,其中,xxx.setProperty(".value","String you want to input")就能起到做用,这个方法直接将文本框的.value属性的值设置为我们输入的值,能达到我们的要求!OK,搞定~~



问题场景2:

  由于特殊需要,今天在取一个字符串时,需要找出该字符串中某子字符串出现的次数,例如A字符串为what is this?my name is what!,现在需要找出A字符串中包含有多少个is。我不知道java类库中有没有提供很方便的方法哈~但是问了一下开发人员,他们没有说有简便的方法,没办法,只好自己胡乱整吧。

解决思路:

  既然取一个字符串A中出现子字符串B的次数,那么就先获取A字符串的长度(如上面例子中a.length()=29)。然后把需要查找的子字符串B替换成空,(即现在字符串成了what  th?my name  what!),然后再获取这个字符串的长度(length()=23),OK,两个长度相减,得出29-23=6,再除以要查找的子字符串的长度(is的长度为2),那么6/2=3,即is在A字符串中出现的次数为3。呵呵,很土的方法。不过能实现就OK了,管它土不土呢,嘿嘿~

/**

* @parameter orginStr  原始字符

* @parameter subStr 要查询的子字符

* @return 返回子字符在原始字符串中出现的次数

**/

private int countOfString(String originStr, String subStr)

{

  int count = 0;

  int orginLength = originStr.length();   //原始字符串的长度

  String temp = null;

  if(subStr != null && subStr != "" && !subStr.equals(""))

  {

    temp = orginStr.replace("subStr","");  //将原始字符串中的子字符替换为空

  }

  int afterReplaceLength = temp.length();  //替换为空后字符串的长度

  count = (orginLength - afterReplaceLength)/subStr.length() ;  //两者之间的差除以子字符的长度得出出现的次数

  return count;  //返回次数

}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-2-23 00:17:44 | 只看该作者
不错,收藏。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-7-2 11:48:26 | 只看该作者
后面那个可以用正则吧

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegTest {
        static void test() {
                Pattern p = null;
                Matcher m = null;
                int a = 0;

                p = Pattern.compile("is");
                m = p.matcher("what is this?my name is what!");
                // b = m.matches();
                while (m.find()) {
                        a++;
                }
                System.out.println("is 出现了"+a+"次");

        }

        public static void main(String args[]) {
                test();
        }
}
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-24 15:13 , Processed in 0.074811 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表