51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4754|回复: 14
打印 上一主题 下一主题

[原创] QTP 文本框输入类型问题,求助大家

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-6-7 14:24:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如一个文本框,只允许输入数字(其它类型不能输入)。怎么来判断字母和中文等其它类型是否可以输入?
方法1.直接参数化不同类型数据,进行取值比较,根据比较结果判断是否能输入其它类型。比如参数化字母(ab),如果文本框VALUE为空,就是不能输入;反之则能输入。但有个问题,网页不能输入字母,但用SET方法数据时,却能输入字母,造成结果不同。
方法2.模拟键盘,直接用sendkeys输入,但又出现一个问题,中文不能用sendkeys直接输入。
希望大家帮忙看看,怎么来写这个自动化?谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-6-7 21:10:35 | 只看该作者
没看明白,,,这个文本框是只允许输入数字类型,这个是开发决定的,不符合的时候给出提示或清除,,,为什么要你人为去判断其他是否能够输入?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-6-8 09:15:48 | 只看该作者
回复 2# SexyCat_1113

比如一个手机号码文本框,手机号码只能输入11位数字,这是我们知道的,但开发不一定会去限制能否输入字母,所以要做这样的判断。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2012-6-8 09:28:31 | 只看该作者
这种情况应该是提交后进行验证弹出提示的吧
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    5#
    发表于 2012-6-8 09:49:38 | 只看该作者
    回复 1# king0964
    set输入后,将光标的焦点移开,看看刚刚输入的值还在该文本框中么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2012-6-8 10:39:23 | 只看该作者
    回复 4# May_may
    很多情况都是直接禁止输入字母的,检验不了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2012-6-8 10:41:18 | 只看该作者
    回复 5# 黑羽祭
    问题有描述了,如果用set,会产生跟实际情况不一致:实际情况已经禁止输入字母,但用set方法却能输入字母。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2012-6-8 11:00:34 | 只看该作者
    回复 1# king0964


        这种类型测试果断不能用set等事件的
    测试方法和手工测试一样,激活控件焦点,然后噼里啪啦一阵狂敲键盘,敲完后看看控件中的文本与预期是否一致即可.
    比如控件不允许输入字母,那么click文本区,然后用type或者sendkeys来敲a-z的字母,然后验证控件文本属性是否跟之前一样(依然为空),测中文也一样,先发送快捷组合键来切换输入法,然后就像手工打字一样发送字符串就行了,然后同样校验
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2012-6-8 11:28:31 | 只看该作者
    用Set不行,Set是直接修改了运行对象中的属性value的值,触发不了控件本身的逻辑判断
    如这样的:
    <input id="111"  onpaste= "return   false; "   onkeyup= "this.value=this.value.replace(/\D/g, ''); ">
    首先要激活控件,否则无法触发控件中的事件。
    然后用SendKeys发送字符。
    楼上说的很对。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2012-6-8 17:31:54 | 只看该作者
    本帖最后由 king0964 于 2012-6-8 17:36 编辑

    回复 8# hsjzfling
    关键是怎么判断现在是中文输入法还是英文输入法?如果不知道什么输入法,怎么切换?
    还有,这个切换的点,怎么判断?QTP判断不了输入是否字母或中文?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2012-6-8 18:25:46 | 只看该作者
    回复 10# king0964


    从测试初始状态,前置条件等方面去考虑吧,很多事情实际多尝试下可以找到方法的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2012-6-9 09:51:41 | 只看该作者
    首先在开发环节。
    采用正则表达式来保证文本框中输入的是数字而不是其他数据类型。

    关于规定输入的数据类型我认为应该是开发端所做的。
    例如:验证输入的邮箱地址是否符合邮箱格式,代码如下:

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

    public class Question3
    {

            /**
             * 输入一个Email地址,然后用正则表达式验证该Email地址是否正确。
             */
            public static void main(String[] args)
            {
                    System.out.println("请输入Email地址");
                    String str=SavitchIn.readLineWord();
                    String ema="^[a-zA-Z0-9_\\-]{1,}@[a-zA-Z0-9_\\-]{1,}\\.[a-zA-Z0-9_\\-.]{1,}$";
                    Pattern p=Pattern.compile(ema);
                    Matcher m=p.matcher(str);
                   
                    if(m.matches())
                    {
                            System.out.println("Email地址合法");
                    }
                    else
                    {
                            System.out.println("Email地址非法");
                    }

            }

    }

    如果想去验证文本框中输入的是否是数字,只需要将ema的值赋予为"[0-9]"
    这样就够了,不足之处欢迎拍砖。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2012-6-12 09:41:06 | 只看该作者
    回复 12# shihw11
    谢谢回复
    不过这个也不行,这只是单据用正则表达式校验是否满足格式,并不能模拟输入。
    要求很简单:对于一个只限制输入数字的文本框,手工测试分有效(数字)和无效(字母、中文和特殊字符等),用自动化模拟这几种类型,并自动返回那种类型不行,更好的是那种类型那个不行。我们报告不可能写,除了数字,其它类型不行,是不是都不行?或者只有那个类型不行?无法表现出来。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2012-6-12 11:59:22 | 只看该作者
    回复 1# king0964
    有点麻烦,不过算解决了。
    把参数化数据分为数字、字母、特殊字符和中文等,直接检验数据本身;并用两层次判断条件判断能否输入和数据正确性。
    中英文输入法检验利用sendkeys "^ "(ctrl+space)
    感谢大家的回复
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-2-4 09:49
  • 签到天数: 145 天

    连续签到: 1 天

    [LV.7]测试师长

    15#
    发表于 2012-6-13 10:13:49 | 只看该作者
    回复 14# king0964


        很好的问题。
       “并用两层次判断条件判断能否输入和数据正确性。” 第一层判断能否输入,是怎么做的呢,不用set,用什么?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 21:35 , Processed in 0.099330 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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