51Testing软件测试论坛

标题: qtp11 exist的问题 [打印本页]

作者: robinpipi    时间: 2012-12-6 16:01
标题: qtp11 exist的问题
对象库:[attach]82662[/attach]页面:[attach]82661[/attach]

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

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

这是怎么回事呢
作者: xjwldlover    时间: 2012-12-6 16:06
~某些控件不是你看不到他就不存在,只是隐藏了
作者: robinpipi    时间: 2012-12-6 16:08
也就是说有时候exist并不一定好使,是吧
作者: xjwldlover    时间: 2012-12-6 16:22
也就是说有时候exist并不一定好使,是吧
robinpipi 发表于 2012-12-6 16:08


不是,exist 与 visible是两个不同的属性哦~
作者: robinpipi    时间: 2012-12-6 16:48
何时用exist,何时用visible逮试过了,才知道吧
作者: xjwldlover    时间: 2012-12-6 17:20
呵呵 这么说也不能说错啦~
作者: 黑羽祭    时间: 2012-12-7 09:27
回复 1# robinpipi

你看下对象库中记录的那些对象的属性,有的时候,控件记录的属性没有记录一个控件上的显示的文字,即:对象库记录了这个框,但没记录框里的文字。
这时候,这个控件用Exist是判断框的存在而不是文字,所以只要框存在文字是什么都是True。
这是一种可能性。
具体是什么原因,LZ需要好好检查一下~
作者: robinpipi    时间: 2012-12-7 10:00
这是一个webelement,属性里面是有innertext记录了文字的。
作者: robinpipi    时间: 2012-12-7 10:10
这是对象库[attach]82671[/attach],当页面上提示语是:请输入帐号。这时 “系统忙”这个对象会智能识别,然后最后匹配出来是true。
作者: 黑羽祭    时间: 2012-12-7 10:44
回复 9# robinpipi


    你关掉智能识别试试吧~
作者: xjwldlover    时间: 2012-12-7 11:48
对于弹出提示消息,出现的方式基本有两种。
一种是从无到有新生成一个弹出信息,即,webElement.exist属性从False 到 True
另一种是该消息一直存在,当触发会消息从隐藏状态变成显示状态,即,WebElement.Object.visible=Flase 到 True.【这里属性不一定叫visible,也可能叫hidden,叫张三,需要你自己去观察】

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

ps,exist和visible是有因果关系的属性,不能理解为相同层级属性
作者: robinpipi    时间: 2012-12-11 10:12
我想这块应该是智能识别的问题,当找“系统忙”找不到时候,就会接着采用智能识别,而“请输入帐号”的这个对象的某些属性跟“系统忙”是一致的,当匹配到接下来的属性,就认为是true了
作者: wengdannv    时间: 2013-4-2 15:59
我也碰到类似问题,关掉智能识别的
作者: user603    时间: 2013-4-2 16:18
回复 4# xjwldlover


    我测试C#程序,当控件隐藏后,用Visible仍然是True,好痛苦。




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