51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3211|回复: 14
打印 上一主题 下一主题

[原创] GetTextLocation的一个问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-3-5 13:21:47 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
gettextlocation的一个问题
winlistview下有这么个方法:gettextlocation,描述中说:
Description
Checks whether the specified text string is contained in the specified window area.

Syntax
object.GetTextLocation (TextToFind, Left, Top, Right, Bottom, [MatchWholeWordOnly])
按我的理解这的方法返回的该是文字串的区域坐标,而L,T,R,B则应该是表示查找范围,如果这些值都输入-1,那么就是表示在整个控件中查找。
而实际运行中我发现L,T,R,B四个值几乎和超找的内容没什么关系。我把这四个值都设为0,居然也可以找到对象中的某一段话,返回的值是True。而如果直接用变量,返回给我的则是整个object对应的L,T,R,B。而不是对应的文字区域。
而后我再认真看了看帮助文档
发现还有这么段话:
Notes:


The GetTextLocation method may behave differently in different run sessions depending on the operating system version you are using, service packs you have installed, other installed toolkits, the APIs used in your application, and so on.   Therefore, when possible, it is highly recommended to use the GetROProperty method to retrieve the value of the text (or equivalent) property from an object in your application instead of using the GetTextLocation method.

那么这是不是意味着,我测试中出现的情况是因为我的机子本身的环境造成的?还是这个方法本身的返回值就是整个对象的L,T,R,B?使用前对L,T,R,B的付值难道不是指查找区域范围?
期待答案中。。。。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-3-8 12:48:39 | 显示全部楼层
已经看过的。
The text to capture must be visible in the application window when the step runs
===============
你是说这个吗?
还是说哪句?
至于对象我问题描述中已经写了,是winlistview
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-3-8 16:05:25 | 显示全部楼层
沉的好快
顶下
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-3-9 11:33:23 | 显示全部楼层
原帖由 liujinkui 于 2010-3-8 17:29 发表
呵呵,问题是   L,T,R,B 是什么? 是out类型
sample 给的是对变量赋的一个初值。
get的坐标能是你给的值吗?在想想吧。

不明白。。。。
如果根据帮助文档里的解释,这个L,T,R,B应该是我所指定的一个区域范围,然后在这个区域范围内进行查找,如果查找到了,再返回具体的L,T,R,B并覆盖原来我所给的值。
我所给的并不是GET的值,而仅仅是我指定的搜索范围。GET的坐标是后面返回给我的。
另外“out类型”?何解?
能否给个例子呢?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2010-3-9 11:35:00 | 显示全部楼层
而这个返回值也很奇怪。
既然我本文是固定的,那么返回的值按道理该是固定的,但是如果我所给的初始值不同,返回给我的值也可能会不同。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-3-9 13:22:13 | 显示全部楼层
原帖由 liujinkui 于 2010-3-9 13:02 发表
windowListView 的区域范围不用你给,那是每个对象的属性
out 是地址传递的变量前缀 in 是值传递的前缀
你能告诉我: L,T,R,B 的结果你是怎么验证的呢


如果这样的话,那么我是否可以理解为其实这个方法所返回的是对象的坐标,而不是文本的坐标?
那么问题又出来了。
我实验的例子信息如下:
X 722
Y 479
H(高) 121
W(宽) 242
测试1:
搜索文字为头两个字 “您的”
l=10
t=10
r=150
b=150
返回:
l=7
t=-19
r=147
b=121
测试2
搜索文字为头两个字 “您的”
所有传入变量值为 -1
返回的值为:
l=-3
t=-29
r=239
b=92
测试3
搜索文字为全部文本信息“您的XXXXXXX”
变量值传入
l=10
t=10
r=150
b=150
变量值返回为
l=17
t=-9
r=157
b=131

所有测试期间,对象固定不动。

[ 本帖最后由 z_kh 于 2010-3-9 13:27 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2010-3-9 13:24:00 | 显示全部楼层
这其中甚至出现了负数,不知道这是什么原因?ltrb的值是以哪个为参考点的?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2010-3-10 10:28:00 | 显示全部楼层
呵呵,
你现在给的例子就是我现在的困惑了
问题
1 负数首位相减,正数末位相减?
2 in的范围值作用好象没什么意义
3 out的并不是我本身所想要的文本的区域
4 其实这个方法本身除了找到是否存在文字外,LTRB这些变量并没有什么实际可利用价值。
不知道版主兄是如何认为的?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2010-3-10 20:34:45 | 显示全部楼层
莫非就是传说中的鸡肋。
非常感谢。。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-6 04:26 , Processed in 0.067061 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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