51Testing软件测试论坛

标题: 查了很多的相关资料,有谁知道QTP是如何抓取Scroller Bar? [打印本页]

作者: Dorpnight    时间: 2007-1-31 15:47
标题: 查了很多的相关资料,有谁知道QTP是如何抓取Scroller Bar?
具体问题:

当页面加载的内容太长,屏幕出现分屏,用鼠标滚动右边的滚动条,QTP无法获取到这个对象,有什么好的方法没有?请指教!我查了虚拟对象,它不支持滚动条
作者: wssgily    时间: 2007-1-31 16:19
你想实现什么功能呢?是上下托动Scroller Bar?还是别的,要是上下托动,我可能有方法
作者: wssgily    时间: 2007-1-31 16:34
用sendkeys
作者: Dorpnight    时间: 2007-1-31 17:49
标题: 回复 #2 wssgily 的帖子
真的?!!!太好了, 就是上下拖动的功能
作者: wssgily    时间: 2007-1-31 19:59
原帖由 Dorpnight 于 2007-1-31 17:49 发表
真的?!!!太好了, 就是上下拖动的功能

但是有一点,不知你发现没有,当你mouse或者焦点在输入栏或者文本框内,这种做法是不行的.
作者: Dorpnight    时间: 2007-1-31 20:10
标题: 回复 #5 wssgily 的帖子
我现在关注的是整个页面的上下拖动功能,你能不能告诉我如何实现?

你所说的可以用别的方法,我先解决了这个问题再帮你看看,因为这个现在急需要解决,你所说的以前我再Robot里实现过的
作者: wssgily    时间: 2007-1-31 23:32
原帖由 Dorpnight 于 2007-1-31 20:10 发表
我现在关注的是整个页面的上下拖动功能,你能不能告诉我如何实现?

你所说的可以用别的方法,我先解决了这个问题再帮你看看,因为这个现在急需要解决,你所说的以前我再Robot里实现过的

用sendkeys就能实现上下托动啊,只是托动的时候,你要定义到点击几下.
作者: Dorpnight    时间: 2007-2-1 14:22
标题: 回复 #7 wssgily 的帖子
代码如何实现啊?
我查了帮助,也试运行了,怎么也不能通过,请大侠赐教啊
作者: wssgily    时间: 2007-2-1 15:17
就是实现滚动条上下动是不?注意mouse或者焦点不能在输入栏或者文本框内

for j=1 to 5                            '一共来回托动5次

for i=1 to 10                          '这是往下托动
Set aa = CreateObject("WScript.Shell")
aa.SendKeys "{down}"        
next   

for i=1 to 10                          '这是往上托动
Set aa = CreateObject("WScript.Shell")
aa.SendKeys "{up}"        
next                     
next
作者: Dorpnight    时间: 2007-2-1 15:39
Browser(" Login").Page(" Login").WebEdit("Login1$txtUserName").Set "aa"
Browser(" Login").Page(" Login").WebEdit("Login1$txtPassword").SetSecure "aa"
Browser(" Login").Page(" Login").WebList("Login1$lstDatabase").Select "UnitTest"
Browser(" Login").Page(" Login").Image("Login1$lblLogin").Click 15,7
Browser(" Central").Page(" Central").Link("CSR").Click

'下面这段是我写的跑不下去:
<script language="VBScript">
set WshShell =CreateObject("WScript.Shell")
WshShell.SendKeys "{PGDN}"     
</script>



Browser(" Central").Page("Customers Module").Link("Contacts").Click
Browser(" Central").Page("Customers Module").WebButton("ctl00$bodyCPH$udcBody$udcTabSt").Click
Browser(" Central").Page("Customers Module").WebElement("Add Contacts").Click
Browser(" Central").Window("Add Contacts -- Web Page").Page("Add Contacts").Frame("mainIF").WebList("ctl00$bodyCPH$ucContacts$cboCa").Select "TRANSMISSION - ANALOGUE"
Browser(" Central").Window("Add Contacts -- Web Page").Page("Add Contacts").Frame("mainIF").WebList("ctl00$bodyCPH$ucContacts$cboCo").Select "Phone Call"
Browser(" Central").Window("Add Contacts -- Web Page").Page("Add Contacts").Frame("mainIF").WebList("ctl00$bodyCPH$ucContacts$cboCo_2").Select "Captured"
Browser(" Central").Window("Add Contacts -- Web Page").Page("Add Contacts").Frame("mainIF").Image("WebResource").Click
Browser(" Central").Window("Add Contacts -- Web Page").Window("Order Advance Search --").Page("Order Advance Search").Frame("mainIF").WebEdit("ctl00$bodyCPH$ucOrderAdvanceSe").Set "5"
Browser(" Central").Window("Add Contacts -- Web Page").Window("Order Advance Search --").Page("Order Advance Search").Frame("mainIF").WebButton("Search").Click
Browser(" Central").Window("Add Contacts -- Web Page").Window("Order Advance Search --").Page("Order Advance Search").Frame("mainIF").WebElement("Select").Click
Browser(" Central").Window("Add Contacts -- Web Page").Page("Add Contacts").Frame("mainIF").WebButton("Ok").Click
Browser(" Central").Page("Customers Module").WebButton("ctl00$bodyCPH$udcBody$udcTabSt_2").Click
Browser(" Central").Page("Customers Module").Sync
Browser(" Central").Close
Browser(" Login").Page(" Login_2").Sync
作者: wssgily    时间: 2007-2-1 15:55
原帖由 Dorpnight 于 2007-2-1 15:39 发表
Browser(" Login").Page(" Login").WebEdit("Login1$txtUserName").Set "aa"
Browser(" Login").Page(" Login").WebEdit("Login1$txtPassw ...



'下面这段是我写的跑不下去:
'<script language="VBScript">
set WshShell =CreateObject("WScript.Shell")
WshShell.SendKeys "{DOWN}"     
'</script>

换成这样后,滚动条肯定会有变化的。
作者: Dorpnight    时间: 2007-2-5 17:13
谢谢wssgily

再向你你请教一个问题

我如何在webtabel里取到这个tabel里的值?如图:

紫色圈住的是webtable,我要取Contacts,就是红色圈住的那个值,因为一个tabel被挤的太小,我没办法用你说的那种方法取到contacts,帮我看看吧,我自己研究了几天都没办法实现
作者: wssgily    时间: 2007-2-5 17:15
图在哪?
作者: Dorpnight    时间: 2007-2-5 17:16
标题: 图片没贴上,这是图片
图片里要实现的步骤:

1 拖动右侧的滚动条
2 可点击Contacts

谢谢
作者: Dorpnight    时间: 2007-2-5 17:16
标题: 回复 #13 wssgily 的帖子
发上来了,呵呵,谢谢
作者: wssgily    时间: 2007-2-5 17:26
可以试一下
.....webtable("name").childitem()
.....webtable("name").getcelldata()

childitem,getcelldata你看下帮助试试吧。
作者: Dorpnight    时间: 2007-2-5 17:36
标题: 回复 #16 wssgily 的帖子
好的,呵呵,谢谢!!
作者: Dorpnight    时间: 2007-2-5 18:03
这个问题我用录制的方法解决了,谢谢你!!太感谢了!!

QTP好像不能识别Web Page Dialog啊,是吗?

你有什么好的方法吗?
作者: wssgily    时间: 2007-2-5 18:05
原帖由 Dorpnight 于 2007-2-5 18:03 发表
这个问题我用录制的方法解决了,谢谢你!!太感谢了!!

QTP好像不能识别Web Page Dialog啊,是吗?

你有什么好的方法吗?


不明白你说的什么意思?
作者: Dorpnight    时间: 2007-2-5 18:21
标题: 回复 #19 wssgily 的帖子
这是我的代码

Browser("Browser").Window("Contacts -- Web Page Dialog").Page("Contacts").Frame("mainIF").Check CheckPoint("mainIF")


每次运行到这里就不行了, 因为这句相对应的是一个.net下弹出的gridview,其实就是Web Page Dialog,不知道它为什么不能运行下去
作者: Dorpnight    时间: 2007-2-5 18:22
在这个页面上我的操作是,点击一个放大镜,然后页面刷新,但是运行到这里就不行了,不知道是放大镜不能识别,还是别的什么原因
作者: wssgily    时间: 2007-2-5 18:23
弹出什么错误信息?.net add-in已加载是吧.
作者: Dorpnight    时间: 2007-2-5 18:32
是,加载了

图片就是错误信息
作者: wssgily    时间: 2007-2-5 21:14
我估计是放大镜的原因,因为QTP还没有那么智能,像素和分辨率一改变QTP就傻了.
再一个就是到对象库里面看看录制时对象的属性和回放时的属性是否不同。
还有一个可能就是对于放大缩小这种问题,根本不适合自动化.
最后还有一个可能,这个问题我解决不了.呵呵.

如果解决了,共享一下啊!
作者: Coffey111111    时间: 2007-2-7 10:27
谢谢wssgily ,我也一直对Scroller Bar录制不下来,经过wssgily 的指教,成功了~~  再次感谢分享sdlkfj3    学习wssgily




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