51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2585|回复: 12
打印 上一主题 下一主题

[原创] About Descriptive Programming

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-4-17 11:53:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
向各路高手请教:
我写了一个系统的登陆到退出的描述行编程,但是最后一句click "Log out" link,执行不通过
把代码和提示信息都弄上来,大家帮我解决一下,谢谢。

1:   browser("name:=BugTest1.0").page("title:=BugTest1.0").webedit("name:=username","type:=text").Set "XXXXXX"
2:   browser("name:=BugTest1.0").page("title:=BugTest1.0").webedit("name:=password","type:=password").SetSecure "XXXXXX"
3:   browser("name:=BugTest1.0").page("title:=BugTest1.0").webbutton("name:= Log In","type:=button").Click
4:   browser("name:=BugTest1.0").page("title:=BugTest1.0_2").link("text:=Log out","href:=http://192.168.16.1:8080/BugTest1.0/working/home/BugTestHomeAction.do?pwChangeFlag=true# ").Click

运行到第4行就很慢,然后就报错。

[ 本帖最后由 alex_82712 于 2007-4-17 12:01 编辑 ]

本帖子中包含更多资源

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

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

使用道具 举报

该用户从未签到

2#
发表于 2007-4-17 12:13:32 | 只看该作者
login以后,page的属性可能变化了,spy一下logout这页面的page属性看看
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-4-17 14:26:43 | 只看该作者

回复 #2 danmy 的帖子

谢谢,SPY后,确实Log out有些变化,多了3个空格,但是后面用“href:=XXX”,不行。用“height:=16”就可以通过,这些值是在spy里查的。

但是我有个问题,如果测试的系统没有开发完成,也就是说界面基本上都还没出来,怎么用工具来进行测试。
就算系统可能比较稳定了,控件的位置可能也会经常变化的,怎样才能知道“height”的值是多少了?
因为“Log out”是个link,在spy里查到的“type”是空的

帮忙解决一下
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-4-17 22:01:15 | 只看该作者
请教个问题

对于导航菜单,鼠标放在首个菜单,它的子菜单项才会显示(都是link菜单),这种情况,怎么样进行描述性编程
我录制了一下,它是一个WebElement对象

举个例子:
在导航栏,有一模块
Management,底下有很多个子功能

Management >> Staff Management >> Project Management >> Role Management 等等(这些都是link menu)

我要为Management >> Staff Management 做描述性编程,该怎样设计代码

我用Object Spy了一下,因为Management是一个首菜单名,我检查不到它底下的那些子功能的元素

帮帮忙解决一下

谢谢

[ 本帖最后由 alex_82712 于 2007-4-17 22:07 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-4-17 22:55:37 | 只看该作者
正则表达式也许可以解决logout text变化的issue,你可以试试。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-4-18 08:28:46 | 只看该作者
.......
都不想回答了
Browser可以使用creationtime来识别
Page使用index:=0来识别,如果有frame的就另当别论了
link使用text属性来识别
菜单的描述,WebElement("innertext:=XXX"),如果是一级菜单的第一个,需要增加index:=1这个属性,其他的不需要这个属性来识别

[ 本帖最后由 mstiunicon 于 2007-4-18 08:29 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-4-18 11:03:28 | 只看该作者

回复 #6 mstiunicon 的帖子

我是新手,请多包含。
我刚才按照你的意思加了一个index,代码如下:
browser("title:=BugTest1.0").page("title:=BugTest1.0").webelement("name:=Personal","innertext:=Add Information","index:=1").Click
解释一下
"name:=Personal"是一级菜单
"innertext:=Add Information"是它下面的第一个二级菜单
加了一个index
但是运行还是很慢,之后就报错。
我把附件带上,麻烦帮忙解决一下

[ 本帖最后由 alex_82712 于 2007-4-18 11:07 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2007-4-18 11:06:38 | 只看该作者
请看附件

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-4-18 15:15:16 | 只看该作者

回复 #7 alex_82712 的帖子

按照你的描述,大哥,你写错了阿
应该是先点击1级菜单,等2级菜单弹出后,再去点击2级菜单
'点击1级菜单,如果这个一级菜单是最左边或者最上边的菜单,才需要添加index:=1这个属性来辅助识别,否则是不需要的。
browser("title:=BugTest1.0").page("title:=BugTest1.0").webelement("innertext:=Personal","index:=1).click
'点击2级菜单,2级菜单如果没有名称重复的,也是不需要添加index属性来辅助识别的。
browser("title:=BugTest1.0").page("title:=BugTest1.0").webelement("innertext:=Add Information").click
如果这样还是不行,试试看要不要添加fireEvent事件。因为每个菜单的实现和展现方式都不一样,只能提供一些思路供参考。

不过看你的截图,应该是browser没有被识别出来,你再仔细查看一下Browser的属性吧。

[ 本帖最后由 mstiunicon 于 2007-4-18 15:16 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2007-4-19 17:54:27 | 只看该作者
mstiunicon兄:
我是新手,请多包含。刚刚学着写描述行编程!
我跟你讲下我目前这个系统,导航栏都在页面的上面,现在给你截的这个图的菜单是这样的(由于涉及隐私,系统做了修改,请包含):
一级菜单:“Personal” 是没有link的,也就是说,用鼠标点击这个一级菜单是无效的,它的功能是鼠标放到“Personal” 这一块的位置,它的二级菜单才会显示出来,也就是图上显示的“Add Informatioin”, “Staff Management” 等等,二级菜单都是link,点击一个进入到一个新的界面。

我现在想用描述行编程写“Personal >> Add Information”这个功能,代码如下:(根据你提供的信息,已做了修改)
1:  browser("title:=ButTest1.0").page("title:=ButTest1.0").webelement("innertext:=Personal","index:=1").Click
2:  browser("title:=ButTest1.0").page("title:=ButTest1.0").webelement("innertext:=Add Information").Click

到了第二行就报错,报错信息也截下来了

请帮忙解决一下,谢谢。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-4-19 18:32:17 | 只看该作者
提示信息说,找到了多个对象。如果是第二行报的错,那么,请将第2行改成:
browser("title:=ButTest1.0").page("title:=ButTest1.0").webelement("innertext:=Add Information","index:=1").Click
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2007-4-20 10:17:29 | 只看该作者

回复 #11 mstiunicon 的帖子

谢谢,终于解决了
不过是这样的
第2行代码后面不能写webelement().Click,这样的话,后面的代码会报错,说是找不到第3行代码的元素
因为第2行是一级菜单下面的子菜单,它是一个链接
后来把第二行的webelement().Click改成link().Click就可以通过了
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2007-4-24 10:42:34 | 只看该作者
尽量用不变化的特征值进行描述,如果值会变化,就用正则表达式来描述其统一的规律
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-29 10:25 , Processed in 0.142093 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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