小狐狸如如 发表于 2009-9-11 17:07:56

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:15

fireevent onmousedown 或onclick

小狐狸如如 发表于 2009-9-11 17:38:13

根据楼上的,改成.WebElement("innerText:=新增目录","index:=1").object.onclick
可是还是不行

小狐狸如如 发表于 2009-9-11 17:44:53

onmousedown这个我也试了,报错,说是不支持onmousedown 方法,我是这么写的
.WebElement("innerText:=新增目录","index:=1").object.onmousedown

小狐狸如如 发表于 2009-9-11 18:16:17

.GetROProperty("innerText")用这个取到的文字确实是新增目录啊。神啊,能告诉我咋回事啊

小_麦 发表于 2009-9-11 18:28:53

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:25

把index去掉试试,而且 onmousedown也不是这样用的
WebElement("innerText:=新增目录","index:=1").fireevent "onmousedown"

小狐狸如如 发表于 2009-9-11 23:10:11

第一个WebElement 是因为这个是右键菜单的是个DIV,这个文字是在ID为itemMenu 的 DIV 里面的。在ID为itemMenu 的 DIV 里,是一个webtable ,第2个WebElement 对象我是用来识别那个webtable 里的“新增目录”的文字的。
回答小麦的问题。因为Frame("name:=mainFrame").里有将近10个DIV,不区分行嘛?

小狐狸如如 发表于 2009-9-11 23:11:14

回风雪夜归人 ,因为webtable里,是有多个colle的,所以我必须要指定是点第几个

小_麦 发表于 2009-9-14 15:14:27

原帖由 小狐狸如如 于 2009-9-11 23:10 发表 http://bbs.51testing.com/images/common/back.gif
第一个WebElement 是因为这个是右键菜单的是个DIV,这个文字是在ID为itemMenu 的 DIV 里面的。在ID为itemMenu 的 DIV 里,是一个webtable ,第2个WebElement 对象我是用来识别那个webtable 里的“新增目录”的文字的 ...
你用QTP识别一下你最终操作的对象,把对象加到对象库中看看,是几层就写几层,中间的DIV,TABLE之类的可以省略

kings727 发表于 2009-9-14 17:20:01

原帖由 小狐狸如如 于 2009-9-11 23:11 发表 http://bbs.51testing.com/images/common/back.gif
回风雪夜归人 ,因为webtable里,是有多个colle的,所以我必须要指定是点第几个
你为什么不直接对webtable,进行操作了。
还是我理解错了你的意思?
是否贴个图。

南实梦 发表于 2009-9-14 23:21:09

对于右键菜单用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:30

childitem和childobjects这么方便的函数不用,弄什么webelement啊
页: [1]
查看完整版本: webtable的click问题