y970105 发表于 2009-2-11 19:24:50

遇到一个问题,希望版上可以有人帮我一下

我的RFT是8.0 firefox2.0的版本
我的程序全部都是b/s结构的 用find方法也都可以识别并且可以找到
但是我的程序中,有一部分的菜单是用javascript写的,用识别没有办法识别出来,
后来我就用录的方法,看看程序是怎么识别这个javascrip写的菜单,发现他是用.class=MozillaUIWindowsCalss这个东西
也就是说,识别成了win的对像了
但是,我用find(atdecendant(".class","MozillaUIWindowCalss"))确识别不出来
请问这个问题怎么解决呢?

版上有人遇到过吗?

dreamever 发表于 2009-2-11 19:54:00

你肯定用错了,而且一个问题还分成两个帖子发.
我所测试的项目,菜单也是javascript写的,甚至是动态生成的,我用.text属性识别就一点问题没有.
你说自己的脚本没有办法识别出来,那是不是看看你的代码如何写的?你的find是如何获取的?用对象检查器是不是能看到菜单对象的属性?.class=MozillaUIWindowsCalss未必说明就被识别了windows对象,不信你自己录一个windows计算器,看看他的.class是什么?
你用find(atdecendant(".class","MozillaUIWindowCalss"))识别不出来,多半是因为你所用的属性就不对.但是你的描述里一没代码二没截图,你问别人怎么解决,别人却连你问题的情况都不清楚.想回答你的问题还得让解决问题的人先问几个相关的问题搞明白你的问题是什么.比如说我问你:我们家的电视不显示屏幕了,怎么解决,对于这样的问题你同样无从下手,对吧?
find功能是很强大,基本上只要你在界面上能用肉眼看到,就可以用find方法找出来,我用rft时间虽然不长,但是也有一年了,对于这点我还是相当相信rft的能力的,解决问题的关键是要找到能有效识别那个菜单对象的属性

y970105 发表于 2009-2-11 20:41:58

HI dreamever
我已经找到的问题的所在了,原因在于我的javascript用的是dojo写的
官方的RFT8.0虽然对外宣布支持dojo了,但是实际上,无论是在API里面,还是帮助里面都只有dojo的说明
没有关于dojo的支持内容。这是我的RFT无法实别javascript菜单的最根本问题。

截图
RFT识别出来的内容

firebug打开是dojo.RFT8.0支持率不高

y970105 发表于 2009-2-11 23:17:44

Error: UnsupportedActionException: CRFCP0050E: No screen point found for object, during playback of a script with Dojo and RFT

Technote (troubleshooting)

Problem(Abstract)
This technote identifies an UnsupportedActionException error, that can occur during playback of script with Dojo and IBM® Rational® Functional Tester (RFT).

Symptom
When playing back a script created with Ajax/Dojo that uses Mozilla Firefox in Rational Functional Tester, the following error occurs:
UnsupportedActionException: CRFCP0050E: No screen point found for object





Cause
Dojo is not supported in RFT.


Resolving the problem
A request for enhancement (RFE) to add Dojo support exists and is tracked by it's RFE number RATLC01154979.


操作系统:
Windows

软件版本:
7.0, 7.0.0.1, 7.0.0.2, 7.0.1, 7.0.1.1, 7.0.1.2, 7.0.1.3, 8.0

参考号:
1298096

IBM 组:
Software Group

修改日期:
2008-09-26

dreamever 发表于 2009-2-12 11:49:00

看那图里的对象属性,使用find(atdecendant(".name","logs"))应该可以找到测试对象
如果不行的话还有第二个途径,那就是使用iwindows接口,iwindows接口提供了对windows对象的识别和支持,具体的方法调用可以看一下api.
顺便问一下,你是不是经常上国外的论坛?感觉习惯有点象,呵呵

y970105 发表于 2009-2-12 13:11:22

HI deamever
现在看到图片里面识别出来的结果,那是我用录制的方法识别出来的,如果用手去抓基本上很难去抓到这个对像,所以,我们唯一的方法要不然就是让我的前台dev加入快捷键,别外的方法就是,用你说的iwindows这个方法试一下
我后来又查了一下RFT的帮助,我的dojo的菜单是menuitem2这个类型的,但是RFT的dojo是不支持这个类型的,所以这也是一个比较关健的问题。我先试试第二个途径吧 不行我在发贴问你

y970105 发表于 2009-2-12 21:43:51

HI deamever

这个问题我想目前还是解决不了,如果用iwindows的话,我尝试了一下,用find的方法还是找不到,getTowindow()里面找不到关于这个类的信息。

但是我奇怪为什么录制就可以得到,难到我的方法不对吗?
页: [1]
查看完整版本: 遇到一个问题,希望版上可以有人帮我一下