51Testing软件测试论坛

标题: 选择不到下拉表中的数据 [打印本页]

作者: ls_721521    时间: 2008-12-17 16:46
标题: 选择不到下拉表中的数据
下拉表中的数据是我参数化的,每次数据都变化。现在想选取下拉表中的数据,点击后取不到值,见代码:

data=browser("").Page("").WebTable("innertext:="&cont,"index:=1").GetCellData(2,1)

Browser("").Page("").WebElement("innertext:="&data,"rowSpan:=1","index:=1").highlight‘点亮的是整个下拉表

Browser("").Page("").WebElement("innertext:="&data,"rowSpan:=1","index:=1").click   ’因为点击的是整个下拉表,所以没有选择到要选的数据

用 browser("").Page("").webtable("qtp").ChildItem(2,1,"link",0).click 也是一样的效果
下面是截图
[attach]47705[/attach]
作者: blueeagle9999    时间: 2008-12-17 22:55
用sendkeys {down}如何?
作者: ls_721521    时间: 2008-12-18 09:30
现在的问题是 Browser("").Page("").WebElement("innertext:="&data,"rowSpan:=1","index:=1") 根本没有选中表里的数据,而是选的整个表。
作者: david208    时间: 2008-12-18 11:31
怎么跳过了weblist ?如果有,可以用
weblist.getitem(i)试下
作者: ls_721521    时间: 2008-12-18 13:10
没有weblist...
作者: ltp401128401128    时间: 2008-12-18 13:31
Set wshSehll = CreateObject("WScript.shell")
Browser("").Page("").WebElement("innertext:="&data,"rowSpan:=1","index:=1").highlight
wshSehll.SendKeys("{DOWN}")

楼主把这个方式加入到脚本里面去调试一下,看能不能选中你想要的数据呢?
作者: ls_721521    时间: 2008-12-18 14:11
标题: 回复 5# 的帖子
用SendKeys("{DOWN}")应该可以的 谢谢了
我的数据在下拉表第二行所以用了2个
wshSehll.SendKeys("{DOWN}")
wshSehll.SendKeys("{DOWN}")
但还有个问题,键盘选中后这个下拉表不关闭,导致以后的步骤不能执行。
作者: wugecat    时间: 2008-12-18 15:27
用FireEvent "onmouseover"试一下
作者: asoqa    时间: 2008-12-18 16:05
标题: 回复 7# 的帖子
兄弟,你一直按方向键,没有回车也没有做点击操作,当然下拉表关闭不掉啊。
作者: ls_721521    时间: 2008-12-18 16:06
标题: 回复 8# 的帖子
谢谢,不过这个方法也不行
接着7#的话题:键盘选中后这个下拉表不关闭,导致以后的步骤不能执行。
现在我把关闭下拉框的步骤插进去再进行下面的步骤还是不行。用同步点等待下面的对象,执行后无操作。
作者: ls_721521    时间: 2008-12-18 16:08
标题: 回复 9# 的帖子
我按回车了,只是刚才没贴出来
wshSehll.SendKeys("{DOWN}")
wshSehll.SendKeys("{DOWN}")
WshShell.SendKeys "{ENTER}" ‘这个是回车吧
作者: wugecat    时间: 2008-12-18 16:33
标题: 回复 10# 的帖子
不会吧~
你那条“132”的记录难道不能单独添加成两个WebElement吗?一个是变色前的,一个是变色后的,然后用FireEvent "onmouseover移动到没变色的,再click变色的
作者: asoqa    时间: 2008-12-18 16:34
那说明你的程序不响应回车事件,需要模拟鼠标点击
作者: ls_721521    时间: 2008-12-18 16:38
标题: 回复 12# 的帖子
"132"是我参数化的数据,对象库中没有对象
作者: ls_721521    时间: 2008-12-18 16:40
标题: 回复 13# 的帖子
“模拟鼠标点击”咋模拟呀?
作者: ls_721521    时间: 2008-12-18 16:44
赫!!我升高级战友了!
作者: wugecat    时间: 2008-12-18 16:44
标题: 回复 14# 的帖子
对象库没有就另外添加一个。。我刚刚遇到了一个类似你这样的问题,就是这么解决的
作者: ls_721521    时间: 2008-12-18 16:48
标题: 回复 17# 的帖子
"132"是excel里导入的数据,添到对象库后要是数据变了不就又识别不了吗!
作者: wugecat    时间: 2008-12-18 16:52
标题: 回复 18# 的帖子
用SetTOProperty将“132”参数话成当前的就可以了
作者: ls_721521    时间: 2008-12-18 16:59
标题: 回复 19# 的帖子
对呀,这又回到我在3#说的问题了
作者: wugecat    时间: 2008-12-18 17:14
只用这一句Browser("").Page("").WebElement("innertext:="&data,"rowSpan:=1","index:=1")描述是行不通的因为它表示的是那个黑匡里的东西。你需要再添加一个对象是描述那个记录的。。比如Browser("").Page("").WebElement("innertext:=132","rowSpan:=1","index:=1"),再将这句“132”参数化了。。。你导入的什么值你自己总该知道吧,这样不就可以识别了吗?!
作者: ls_721521    时间: 2008-12-18 17:32
data的值就是“132”,我用GetCellData(2,1)在下拉表中获取的
Browser("").Page("").WebElement("innertext:="&data,"rowSpan:=1","index:=1")和Browser("").Page("").WebElement("innertext:=132","rowSpan:=1","index:=1")有区别吗?
如果下拉框里的数据是系统自带的就没有问题了。
作者: ls_721521    时间: 2008-12-18 17:33
标题: 回复 21# 的帖子
没明白你说的意思
作者: ls_721521    时间: 2008-12-22 11:44
最近忙 问题还没解决呢。。。
作者: xingzhifang    时间: 2012-2-13 17:10
为什么直接跳出WebList了?
Dim  Count
Count=Browser(“Browser”).Page(“FindaFlightMercury”).WebList(“passCount”).GetROProperty(“value”)
Msgbox(Count)
这样就可以得到选定的下拉列表中的值,我试过,没错的
作者: ls_721521    时间: 2012-3-30 23:02
呵呵,那是08年的帖子了




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