robinpipi 发表于 2012-12-6 16:01:05

qtp11 exist的问题

对象库:页面:

代码:oXitong=Browser("网").Page("社区").WebElement("系统忙,请稍后再试。").Exist

运行后,发现,智能识别这个对象后,oXitong=true
页面上明明是:请输入帐号

这是怎么回事呢

xjwldlover 发表于 2012-12-6 16:06:03

~某些控件不是你看不到他就不存在,只是隐藏了

robinpipi 发表于 2012-12-6 16:08:53

也就是说有时候exist并不一定好使,是吧

xjwldlover 发表于 2012-12-6 16:22:53

也就是说有时候exist并不一定好使,是吧
robinpipi 发表于 2012-12-6 16:08 http://bbs.51testing.com/images/common/back.gif

不是,exist 与 visible是两个不同的属性哦~

robinpipi 发表于 2012-12-6 16:48:53

何时用exist,何时用visible逮试过了,才知道吧

xjwldlover 发表于 2012-12-6 17:20:08

呵呵 这么说也不能说错啦~

黑羽祭 发表于 2012-12-7 09:27:44

回复 1# robinpipi

你看下对象库中记录的那些对象的属性,有的时候,控件记录的属性没有记录一个控件上的显示的文字,即:对象库记录了这个框,但没记录框里的文字。
这时候,这个控件用Exist是判断框的存在而不是文字,所以只要框存在文字是什么都是True。
这是一种可能性。
具体是什么原因,LZ需要好好检查一下~

robinpipi 发表于 2012-12-7 10:00:04

这是一个webelement,属性里面是有innertext记录了文字的。

robinpipi 发表于 2012-12-7 10:10:40

这是对象库,当页面上提示语是:请输入帐号。这时 “系统忙”这个对象会智能识别,然后最后匹配出来是true。

黑羽祭 发表于 2012-12-7 10:44:51

回复 9# robinpipi


    你关掉智能识别试试吧~

xjwldlover 发表于 2012-12-7 11:48:00

对于弹出提示消息,出现的方式基本有两种。
一种是从无到有新生成一个弹出信息,即,webElement.exist属性从False 到 True
另一种是该消息一直存在,当触发会消息从隐藏状态变成显示状态,即,WebElement.Object.visible=Flase 到 True.【这里属性不一定叫visible,也可能叫hidden,叫张三,需要你自己去观察】

如果是类型2,你只需要抓取两种状态时的HTML,对节点属性做对比即可找出区别,节点doc抓取推荐工具debugBar

ps,exist和visible是有因果关系的属性,不能理解为相同层级属性

robinpipi 发表于 2012-12-11 10:12:57

我想这块应该是智能识别的问题,当找“系统忙”找不到时候,就会接着采用智能识别,而“请输入帐号”的这个对象的某些属性跟“系统忙”是一致的,当匹配到接下来的属性,就认为是true了

wengdannv 发表于 2013-4-2 15:59:28

我也碰到类似问题,关掉智能识别的

user603 发表于 2013-4-2 16:18:52

回复 4# xjwldlover


    我测试C#程序,当控件隐藏后,用Visible仍然是True,好痛苦。
页: [1]
查看完整版本: qtp11 exist的问题