51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2882|回复: 15
打印 上一主题 下一主题

[求助] 【已解决】cs应用,窗口识别的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-4-24 17:51:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 wangll 于 2013-4-25 11:37 编辑

cs应用,窗口识别的问题:打开窗口A,对应text="测试应用",选择一个项目后,在A窗口会显示所选项目的所有信息,而A窗口的text="测试应用-项目名称XXX",我现在要判断打开项目是否成功,但窗口A对象总是识别不到,用了描述性编程+正则表达式如If WpfWindow("text:=测试应用-.").exist为何不行呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.5]测试团长

    16#
    发表于 2013-4-25 11:23:45 | 只看该作者
    回复 15# wangll


        1. 很正常,再说你用了正则,出现了2个一样的控件很可能。你可以添加控件到对象库,然后看看对象库是怎么对这个控件进行描述的,照着学学。
        2. 对的,那层以下都强制使用描述性编程。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2013-4-25 11:02:57 | 只看该作者
    回复 12# 黑羽祭

    1、太帅了,按你说的加了个devname属性,可以识别了,但其实还是有些不明白的,就是我觉得就这一个窗口啊怎么会匹配了多个呢,不过终究解决了问题,呵呵
    2、打开项目后的窗口识别使用了描述性编程,那么后边的所有基于这个窗口的操作是不是都要描述性编程了呢?
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.5]测试团长

    14#
    发表于 2013-4-25 11:02:55 | 只看该作者
    回复 13# wangll


        你可以加个index属性上去,0-n逐个highlight,就能很快知道为什么了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2013-4-25 10:55:32 | 只看该作者
    回复 12# 黑羽祭


    好的,我再看一下为何匹配了多个对象啊
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.5]测试团长

    12#
    发表于 2013-4-25 10:51:42 | 只看该作者
    回复 11# wangll


        1. 为什么要吧对象库全删了?那样效率多低,结合使用不是更好嘛。
        2. 可以用对象库啊,记录2个按钮就行了,描述性编程也行,描述其他属性就行了,别用text属性也能用同一个条件点上,不过不怎么推荐。

    合理的使用对象库,这些问题都能解决,对象库也支持正则的,没必要都改成描述性编程
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2013-4-25 10:45:49 | 只看该作者
    回复 7# 黑羽祭


    1、 或者我把之前的对象库全都删除,全都改为描述性编程试试?
    2、还有个问题,打开项目前的窗体A,包含了很多控件,如button,
    winfrom("测试应用").winbutton("打开项目").click
    打开项目后的窗体A只是文本变了,而button还在,又加了一些其他的控件,那么在识别这些button的时候,再写成这样winfrom("测试应用").winbutton("打开项目").click 肯定是识别不了了,因为winform的text变化了,那又该怎么解决这个问题呢?
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.5]测试团长

    10#
    发表于 2013-4-25 10:43:39 | 只看该作者
    回复 9# wangll


        说明能找到多个这样的框,所以对WpfWindow("text:=测试数据自动判读 -.*")的描述要再增加一些属性。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2013-4-25 10:36:05 | 只看该作者
    If WpfWindow("text:=测试数据自动判读 -.*").Exist Then 这一句是直接跳到else语句了
    所以又按照你的示例用了oAfter = WpfWindow("text:=测试数据自动判读 -.*").GetROProperty("text"),看看是否能获取到text值,可这时候报可怎么会匹配了多个对象呢?

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2013-4-25 10:33:41 | 只看该作者
    加*还是不行:
       If WpfWindow("打开项目").Exist(3) Then
               Randomize
                    '获取列表的总行数
                    rows = WpfWindow("打开项目").WpfTable("WpfTable").RowCount
                    seIRow = Cint(int(rows* Rnd))'Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

                    '该行对应的项目名称
                    projectName = WpfWindow("打开项目").WpfTable("WpfTable").GetCellData(seIRow,0)       

                    WpfWindow("打开项目").WpfTable("WpfTable").SelectRow seIRow
                    WpfWindow("打开项目").WpfButton("确定").Click

                    wait 3
                    oAfter = WpfWindow("text:=测试数据自动判读 -.*").GetROProperty("text")
                    msgbox oAfter

                    If WpfWindow("text:=测试数据自动判读 -.*").Exist Then
                            parameter("resultValue_script")="Yes"
                    else
                            parameter("resultValue_script")="NO"
                    End If
       End If
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.5]测试团长

    7#
    发表于 2013-4-25 10:00:44 | 只看该作者
    回复 6# wangll


        .后面加*还是不行?有没有报错?上截图看,最好再发一下脚本
    信息多了才能定位问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2013-4-25 09:54:34 | 只看该作者
    回复 4# 黑羽祭
    自己模拟的那个小例子这种方式是识别的,我。。。而本身测试的应用还是不行
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2013-4-25 09:28:30 | 只看该作者
    子曰,学而时习之
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.5]测试团长

    4#
    发表于 2013-4-25 09:19:55 | 只看该作者
    回复 2# wangll


        你正则应该写:Window("text:=测试应用-.*")
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.5]测试团长

    3#
    发表于 2013-4-25 09:19:05 | 只看该作者
    本帖最后由 黑羽祭 于 2013-4-25 09:29 编辑

    回复 2# wangll


        这样:
    1. Dim oBefore,oAfter
    2. oBefore = Window("text:=点击前.*").GetROProperty("text")

    3. Window("text:=点击前.*").WinObject("text:=button1").Click
    4. oAfter =  Window("text:=点击前.*").GetROProperty("text")
    5. If oBefore <> oAfter Then
    6.     msgbox "操作成功"
    7. Else
    8.     msgbox "未操作成功"
    9. End If
    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
     楼主| 发表于 2013-4-24 22:28:21 | 只看该作者
    自己模拟了一个简单的应用,点击button后,form的text值随机变化,我只是想在点button后只要知道form的text值变化了就证明button操作成功,如何实现呢?

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-17 06:08 , Processed in 0.084946 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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