51Testing软件测试论坛

标题: webtable的click问题 [打印本页]

作者: 小狐狸如如    时间: 2009-9-11 17:07
标题: webtable的click问题
现在在写一个公司菜单右键的点击事件的脚本,遇到难题:
该弹出的菜单是个div,里面有table,td,文字,难题在于,click是针对TD的,我使用脚本:

Browser("title:="&BrowserTitle).Page("title:="&PageTitle).Frame("name:=mainFrame").WebElement ("html id:=itemMenu").WebTable("index:=1").WebElement("innerText:=新增目录","index:=1").click

预期:弹出新增目录的页面
结果:啥反应也没有,查看运行结果,是 WebTable.CLICK
个人分析,是否是WebElement("innerText:=新增目录","index:=1")没有识别吗?还是说这个事件是用click没有办法去识别?


对于右键菜单用IE DEV去查看出来的源码如下:
<HTML><HEAD><STYLE>  </STYLE></HEAD><BODY class="body_main"><DIV><DIV class="rightshow" id="itemMenu"><TABLE style="BORDER-RIGHT: #abc9de 1px solid; BORDER-TOP: #abc9de 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #abc9de 1px solid; COLOR: #013364; BORDER-BOTTOM: #abc9de 1px solid; BACKGROUND-COLOR: #fbfcfe" height="100%" cellSpacing="1" cellPadding="1" width="100%" border="0"><TBODY><TR><TD style="BORDER-RIGHT: 0px outset; BORDER-TOP: 0px outset; PADDING-LEFT: 10px; BORDER-LEFT: 0px outset; CURSOR: hand; BORDER-BOTTOM: 0px outset" onclick="parent.addGjml()" align="left"> 新增目录  </TD></TR></TBODY></TABLE></DIV></DIV></BODY></HTML>

期待高手帮我分析下,谢谢了哦
作者: nbkhic    时间: 2009-9-11 17:26
fireevent onmousedown 或onclick
作者: 小狐狸如如    时间: 2009-9-11 17:38
根据楼上的,改成.WebElement("innerText:=新增目录","index:=1").object.onclick
可是还是不行
作者: 小狐狸如如    时间: 2009-9-11 17:44
onmousedown  这个我也试了,报错,说是不支持onmousedown 方法,我是这么写的
.WebElement("innerText:=新增目录","index:=1").object.onmousedown
作者: 小狐狸如如    时间: 2009-9-11 18:16
.GetROProperty("innerText")用这个取到的文字确实是新增目录啊。神啊,能告诉我咋回事啊
作者: 小_麦    时间: 2009-9-11 18:28
Browser("title:="&BrowserTitle).Page("title:="&PageTitle).Frame("name:=mainFrame").WebElement ("html id:=itemMenu").WebTable("index:=1").WebElement("innerText:=新增目录","index:=1").click
这句写的似乎不对,怎么WebElemen后边还有WebTable的??
Browser("title:="&BrowserTitle).Page("title:="&PageTitle).Frame("name:=mainFrame").WebElement("innerText:=新增目录","index:=1").click   试试可以不?

[ 本帖最后由 小_麦 于 2009-9-11 18:30 编辑 ]
作者: 风雪夜归人    时间: 2009-9-11 18:29
把index去掉试试,而且 onmousedown也不是这样用的
WebElement("innerText:=新增目录","index:=1").fireevent "onmousedown"
作者: 小狐狸如如    时间: 2009-9-11 23:10
第一个WebElement 是因为这个是右键菜单的是个DIV,这个文字是在ID为itemMenu 的 DIV 里面的。在ID为itemMenu 的 DIV 里,是一个webtable ,第2个WebElement 对象我是用来识别那个webtable 里的“新增目录”的文字的。
回答小麦的问题。因为Frame("name:=mainFrame").里有将近10个DIV,不区分行嘛?
作者: 小狐狸如如    时间: 2009-9-11 23:11
回风雪夜归人 ,因为webtable里,是有多个colle的,所以我必须要指定是点第几个
作者: 小_麦    时间: 2009-9-14 15:14
原帖由 小狐狸如如 于 2009-9-11 23:10 发表
第一个WebElement 是因为这个是右键菜单的是个DIV,这个文字是在ID为itemMenu 的 DIV 里面的。在ID为itemMenu 的 DIV 里,是一个webtable ,第2个WebElement 对象我是用来识别那个webtable 里的“新增目录”的文字的 ...

你用QTP识别一下你最终操作的对象,把对象加到对象库中看看,是几层就写几层,中间的DIV,TABLE之类的可以省略
作者: kings727    时间: 2009-9-14 17:20
原帖由 小狐狸如如 于 2009-9-11 23:11 发表
回风雪夜归人 ,因为webtable里,是有多个colle的,所以我必须要指定是点第几个

你为什么不直接对webtable,进行操作了。
还是我理解错了你的意思?
是否贴个图。
作者: 南实梦    时间: 2009-9-14 23:21
对于右键菜单用IE DEV去查看出来的源码如下:
<HTML><HEAD><STYLE>  </STYLE></HEAD><BODY class="body_main"><DIV><DIV class="rightshow" id="itemMenu"><TABLE style="BORDER-RIGHT: #abc9de 1px solid; BORDER-TOP: #abc9de 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #abc9de 1px solid; COLOR: #013364; BORDER-BOTTOM: #abc9de 1px solid; BACKGROUND-COLOR: #fbfcfe" height="100%" cellSpacing="1" cellPadding="1" width="100%" border="0"><TBODY><TR><TD style="BORDER-RIGHT: 0px outset; BORDER-TOP: 0px outset; PADDING-LEFT: 10px; BORDER-LEFT: 0px outset; CURSOR: hand; BORDER-BOTTOM: 0px outset" onclick="parent.addGjml()" align="left"> 新增目录  </TD></TR></TBODY></TABLE></DIV></DIV></BODY></HTML>

1.通过上面的源码,看出:你脚本中终端对象的上级目录不对吧,,至少我没看到什么frame呀,你可以试下:
Browser("title:="&BrowserTitle).Page("title:="&PageTitle).WebElement("innerText:=新增目录","index:=1").click
2.和楼上的意思相同,qtp先录制一把,看是怎么个脚本,当然有可能qtp生成不出脚本,就另当别论了;
3.看到你也在使用ie dev工具查看其HTML 代码了,所以可使用vbs操作html dom,
作者: lyscser    时间: 2009-9-14 23:53
childitem和childobjects这么方便的函数不用,弄什么webelement啊




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2