51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10518|回复: 51
打印 上一主题 下一主题

[求助] 只能识别一次的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-9-29 14:55:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个界面上有 开始时间 和 结束时间 两个日期选择按钮,点击后 弹出日期选择框。
而选择时间的代码我写在一个Sub里了,我的目的是首先将当前年月得到,然后和要选择的年月进行比较然后点击相应的(上一、下一)年、月按钮,最后点击具体哪天!

当选择任意一个时间按钮选择时间成功后,点击另一个按钮选择时间时,
   报错 The test run cannot continue due to an unrecoverable error
报错代码如下:(目的得到当前年月,如九月,2007)
now=Browser("B").Page("P").Frame("F").WebElement("class:=title","html tag:=TD").GetROProperty("innertext")
   其中WebElement("class:=title","html tag:=TD")是选择框中上方的月,年的信息,如 (九月,2007)

请问怎么样解决?

[ 本帖最后由 看雪时节 于 2007-9-29 16:15 编辑 ]

本帖子中包含更多资源

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

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

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2007-9-29 15:24:41 | 只看该作者
    怎么就不能放个图片上来? 源代码是什么语言写的? 先看一下 QTP能否找到那个日期控件再说。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2007-9-29 15:52:13 | 只看该作者

    回复 2# 的帖子

    正如我说的,两个日期选择,第一个就能实现,而第二个就报错!~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-9-29 15:59:53 | 只看该作者
    我建议你还使用spy好好检查一下。
    还是对象发生变更导致认为非法的调用之类的事情。

    还有你说第一个时间第2个时间,到底是哪个?你有2组控件,6个按钮,都是关于时间的,应该说清楚一点,我是没看清楚反正。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2007-9-29 16:31:07 | 只看该作者

    回复 4# 的帖子

    谢谢你的回复,那我就继续补充一下:
    点击 图中第一部分的两个按钮的任意一个,都会出现 第二部分的 时间选择框,
    Sub SetDate(sDate) '用来实现在 时间选择框 里选择需要的年月日
    ...
    now=Browser("B").Page("P").Frame("F").WebElement("class:=title","html
    tag:=TD").GetROProperty("innertext")
    ...
    End Sub
    问题在于,如果我先选择了 用车开始时间(脚本运行正常) ,脚本运行到选择 用车结束时间 的时间选择框时,就报错!

    而且我已经 Spy 了 这两个 时间选择框 的属性,没有任何多余的属性可用。能用到的只有class,html tag
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-9-29 16:39:31 | 只看该作者
    问题1:2个激活时间选择框的按钮的识别属性有区别吗?你怎么区分的?
    问题2:你在激活时间选择框以后,有没有关闭的动作
    问题3:你把顺序反过来,先选择结束时间,然后再开始时间呢?正常不?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2007-9-29 16:41:52 | 只看该作者

    回复 6# 的帖子

    问题1:录的时候自己区分Name=img_1、Name=img_2
    问题2:当选择具体某一天后,将自动关闭
    问题3:反过来的情况也一样,第二个会报错!

    [ 本帖最后由 看雪时节 于 2007-9-29 16:45 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-9-29 16:44:11 | 只看该作者
    原帖由 看雪时节 于 2007-9-29 16:41 发表
    反过来的情况也一样,第二个会报错!

    那问题或许就出在我的第2个问题,在你执行第一次操作以后,光标被剥夺了。不在原有的ui层面上了。你先把我的问题回答全了,我陪你一起研究一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-9-29 16:46:21 | 只看该作者
    你加一个wait 5 在两次操作之间
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2007-9-29 16:46:28 | 只看该作者

    回复 8# 的帖子

    请看6#我重新编辑过的描述
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2007-9-29 16:47:25 | 只看该作者
    原帖由 jackymail 于 2007-9-29 16:46 发表
    你加一个wait 5 在两次操作之间

    这法子我也试了!~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-9-29 16:51:36 | 只看该作者
    原帖由 看雪时节 于 2007-9-29 16:47 发表

    这法子我也试了!~

    你把getroproperty的步骤去掉还报错吗?
    如果不报错就把WebElement("class:=title","html tag:=TD").这句话里面的描述性编程改成用对象库识别对象。
    如果还不报错,就检查描述属性是否正确,如果报错就检查getroproperty的方法是否正确。
    还有,你第一次运行正确的期间添加一个步骤,把getroproerty的信息打印出来。看看第一次是否真的成功取到了相关信息

    [ 本帖最后由 jackymail 于 2007-9-29 16:55 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2007-9-29 16:57:50 | 只看该作者
    原帖由 jackymail 于 2007-9-29 16:51 发表

    你把getroproperty的步骤去掉还报错吗?
    如果不报错就把WebElement("class:=title","html tag:=TD").这句话里面的描述性编程改成用对象库识别对象。
    如果还不报错,就检查描述属性是否正确,如果报错就检查getro ...


    MsgBox Browser("B").Page("P").Frame("F").WebElement("class:=title","html tag:=TD").Exist
    在第二个选择框处为False

    第一次选择时这些属性都能取到

    [ 本帖最后由 看雪时节 于 2007-9-29 17:00 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-9-29 17:00:59 | 只看该作者
    原帖由 看雪时节 于 2007-9-29 16:57 发表


    MsgBox Browser("B").Page("P").Frame("F").WebElement("class:=title","html tag:=TD").Exist
    在第二个选择框处为False


    如果再开始时间的时候那次操作能够成功打印到True,那就manual得去操作第一个步骤,然后用spy检查在发生了第一个步骤以后,结束时间对应的哪个按钮的属性值,这个属性值应该是可用的,就是runtime的属性值。 我这样说是因为第一次操作的时候可能导致第2次操作对象的属性变更。
    WebElement("class:=title","html tag:=TD")。也就是说2次获取值不能都用class:=title","html tag:=TD这个。应该是发生变更了,你先保留msgbox调试,直到都为true,然后在恢复到你的实际操作步骤


    [ 本帖最后由 jackymail 于 2007-9-29 17:02 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2007-9-29 17:05:22 | 只看该作者

    回复 14# 的帖子

    有点不理解你让我怎么做了?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-9-29 17:11:28 | 只看该作者
    class:=title","html tag:=TD
    你上面的这个识别属性你自己怎么得到的?

    你先用鼠标去点第一个步骤,别自动化。
    一直做到该要做第二个步骤的时候,用你取 识别属性 的方法去识别(结束时间)第二次应该操作的那个按钮

    不是有2个能弹出日期框的按钮吗,你第一次用鼠标点所有该完成的步骤,该到点第2次的时候停下来,别继续点,用spy(或者你自己的什么方法)去查找这个时候按钮2(结束时间里面涌来弹出日期选择框的那个按钮)的属性
    原帖由 看雪时节 于 2007-9-29 17:05 发表
    有点不理解你让我怎么做了?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-9-29 17:33:14 | 只看该作者
    你咋不减了踪影。。万里长城马上就要走完了都。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2007-9-29 17:47:57 | 只看该作者

    回复 17# 的帖子

    不好意思,没看到已经第二页了,我还说你咋不见影了!哈哈,看来是误会  

    按你说的我也做了,先手动点击 第一个按钮,选择时间,然后 点击 第二个按钮,SPY得到当前年月的属性。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-9-29 17:50:07 | 只看该作者
    原帖由 看雪时节 于 2007-9-29 17:47 发表
    不好意思,没看到已经第二页了,我还说你咋不见影了!哈哈,看来是误会  

    按你说的我也做了,先手动点击 第一个按钮,选择时间,然后 点击 第二个按钮,SPY得到当前年月的属性。


    不是吧。。。。那这样的话估计别人也帮不上你什么,等我找到类似的我试试看然后告诉你
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
     楼主| 发表于 2007-9-29 17:53:40 | 只看该作者
    我出错的地方不是在按钮点击,而是在于第二次打开了 时间选择框 后,没法取到 当前系统年月 的innertext值,从而报错

    我去这个值的目的在于:因为测试使用的的年月和当前系统年月 有可能不同,所以先做个判断。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-21 05:46 , Processed in 0.095462 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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