51Testing软件测试论坛
标题:
页面中隐藏按钮对象的识别
[打印本页]
作者:
vprince
时间:
2008-9-11 15:35
标题:
页面中隐藏按钮对象的识别
目前有一个页面,页面中看不到[退回]这个按钮,但是在QTP的识别过程中,可以识别到这个按钮,我觉得这个按钮只是隐藏了而已,
因为用
if Browser(++++++).Page(+++++++).WebButton("退回").Exist then
msgbox "退回按钮存在"
else
msgbox "退回按钮不存在"
end if
最后它弹出的是"退回按钮存在"
甚至在QTP中执行:Browser(++++++).Page(+++++++).WebButton("退回").click,居然会弹出对话框,可以进行业务操作,可是手工操作的话,在该页面是不可能操作该按钮的,因为根本看不到该按钮.
各位大虾,有没有什么方法推荐,让QTP只识别页面上看得到的按钮,因为我想验证该按钮不存在,实际上页面上是不存在的,但QTP识别出来就是存在,所以产生错误.
在此先谢各位热心帮助.
作者:
假装不在
时间:
2008-9-11 15:47
加多个browser().page().webbutton().getroproperty("visible")的判断下去
作者:
vprince
时间:
2008-9-11 16:07
感谢你的回答,利用visible属性进行判断,其实我原来用description对象的时候也用过,
If Browser("+++++++").Page("++++++").WebButton("name:=退回").GetROProperty("visible")=true Then
msgbox "错误,按钮存在"
else
msgbox "正确,按钮不存在"
End If
这个判断结果为true,所以还是有问题,因为我查看了一下对象属性,运行时该对象没有visible属性,但对象库中有visible,所以用getRoPropertity好像不行.
作者:
vprince
时间:
2008-9-11 16:11
补充:用
msgbox Browser("++++").Page("++++").WebButton("name:=退回").GetROProperty("visible")
弹了来的是true.
见鬼了。
作者:
rcpp
时间:
2008-9-11 16:53
把那个隐藏按钮的html代码贴出来吧
作者:
vprince
时间:
2008-9-11 17:35
HTML码如下,但是查找不到按钮的名称,即使页面上有的按钮,也查找不到..
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<meta http-equiv="Cache-Control" content="no-store" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<link href="/oa/styles/css/ext-all.v0.8.0.gzcss" rel="stylesheet" type="text/css" />
<script src="/oa/scripts/ext-all.v0.8.0.gzjs" type="text/javascript"></script>
<script type="text/javascript">
var ctx='/oa';
Ext.BLANK_IMAGE_URL = ctx+'/styles/images/default/s.v0.8.0.gif';
var SYS_USER={id:'1116'};
</script>
<title>主办处室不受理</title>
<link href="/oa/styles/css/workflow.v1.0.1.css" rel="stylesheet"
type="text/css" />
</head>
<body>
<div id="toolbar">
<div id="container">
<div id="menu"></div>
</div>
<div id="flow-img" class="x-toolbar"
style="width: 100%; text-align: center; display: none"></div>
<form action="/oa/workflow/flow.do" id="pForm" method="POST"
enctype="multipart/form-data" class="x-toolbar">
<div id="flow">
<table>
<tr>
<th width="10%">
<label for="rwlx"><h1>请选择任务流向: </h1></label>
</th>
<td>
<div id="flowTranstion" style="display: none">
<input type="radio" name="next" id="next6176611"
value="6176611">
<a href="#" id="a6176611">送归档</a>
<xml xmltype="addressbook" processName="审批流程" processType="0" taskName="主办处室不受理" transitionName="送归档" bindId="6176611"><addressbook type="0" onclick="banjieHandle">
<default>
<VAR>O_%564%G_100064</VAR>
</default>
<filter/></addressbook></xml>
</div>
</td>
</tr>
</table>
</div>
<input id="dzb" type="hidden">
<input name="dzb_h" id="dzb_h" type="hidden">
<input name="transferrer" id="transferrer" type="hidden">
<input name="sendType" id="sendType" type="hidden">
<input id="method" name="method" type="hidden" value="endTask">
<input id="taskId" name="taskId" type="hidden" value="3185825">
<input id="otherVariables" name="otherVariables" type="hidden">
<input id="formBody" name="formBody" type="hidden">
</form></div>
<div id="form-body">
<div id="workflow-form-basic">
<div id="workflow-form-title">
<h1>主办处室不受理</h1>
</div>
<form id="oform"></form>
<div id="attach">
<div id="NTKOATTACH_OCX_CONTAINER">
</div>
<script type="text/javascript">
var attachesOcx = Ext.oa.AttachesOcx({id:'3185790',url:'',type:'workflow',container: 'NTKOATTACH_OCX_CONTAINER',
finalcall: '',width: '716',height:'150',readonly:'-1',noHeader:false});
//Ext.onReady(attachesOcx.init, attachesOcx, true);
</script>
<script language="JScript" for="NTKOATTACH_OCX"
event="AfterSaveToURL(retStr,ErrCode)">
//保存到URL之后触发该事件
if(attachesOcx){
attachesOcx.afterSave(retStr,ErrCode);
}
</script>
</div>
</div>
<div id="east">
<div id="lcsx"><!--流程属性-->
<form id="common"><script
src="/oa/scripts/workflow/common_function.js" type="text/javascript"></script>
<table width="100%">
<tbody>
<tr>
<th width="35%" style="text-align: right"><label
for="common_next_step_due">下环节办理期限:</label></th>
<td><input type="text" id="common_next_step_due"
name="common_next_step_due" style="width: 153px" /></td>
</tr>
<tr>
<th style="text-align: right"><label for="common_total_due">总办理期限:</label></th>
<td><input type="text" id="common_total_due"
name="common_total_due" style="width: 153px" /></td>
</tr>
<tr>
<th valign="top" style="text-align: right"><label
for="common_remark">本环节备注:</label></th>
<td><textarea id="common_remark"
name="common_remark" style="width: 170px" rows="2"></textarea></td>
</tr>
<tr>
<th style="text-align: right"><label for="common_send_sms">是否发短信:</label></th>
<td><input type="radio" id="common_send_sms_0" value="0"
name="common_send_sms" onclick="setContent()" checked="true" />否 <input
type="radio" id="common_send_sms_1" value="1" name="common_send_sms"
onclick="setContent()" />是</td>
</tr>
<tr>
<th style="text-align: right"><label for="common_sms_receipt">是否短信回执:</label></th>
<td><input type="radio" id="common_sms_receipt_0" value="0"
name="common_sms_receipt" checked />否 <input
type="radio" id="common_sms_receipt_1" value="1"
name="common_sms_receipt" />是</td>
</tr>
<tr>
<th style="text-align: right"><label for="common_sms_type">短信类型:</label></th>
<td><input type="text" id="common_sms_type"
name="common_sms_type" style="width: 153px" /></td>
</tr>
<tr>
<th valign="top" style="text-align: right"><label
for="common_sms_content">短信内容:</label></th>
<td><textarea id="common_sms_content"
name="common_sms_content" style="width: 170px" rows="2"></textarea></td>
</tr>
</tbody>
</table>
</form>
</div>
<div id="xglc-grid"></div>
<div id="xgwj-grid"></div>
</div>
</body>
<div id="load" class="load">
<div id="loading">
<div class="loading-indicator">载入中...</div>
</div>
</div>
<script type="text/javascript">
Event.observe(window, 'load',
function() { $('load').remove()}
);
</script>
<script type="text/javascript">
SEND_TYPE_NORMAL = 0;
SEND_TYPE_BYTRANSFER = 2;
SEND_TYPE_SEQUENCE = 1;
Ext.namespace('OA.workflow');
OA.workflow.config = {
justBegin: false,
taskName: '主办处室不受理',
nodeName: '主办处室不受理',
processName: '审批流程',
taskId: '3185825',
flowType: '1',
flowid: '3185790',
createDate: '2008-09-10',
createUser: '7177',
createOrg: '行政服务大厅',
createOrgId: '1321',
userId: '1116',
signed: true,
rejectable: true,
sendType: null,
readOnly: ''
};
作者:
jifeng
时间:
2008-9-11 21:01
看看这个按钮的哪个属性导致它的隐藏,利用这个属性去判断。
因为他知识不可见,所以用Exist去按段肯定是不行的。
作者:
vprince
时间:
2008-9-12 10:13
这个按钮都看不到,用对象探测器探不到呢,如何查看哪个属性导致它的隐藏呢?问开发人员?
在别的页面有这个按钮, 并显示出来了,查看了一下该按钮有一个visible属性。
作者:
hsjzfling
时间:
2008-9-12 12:13
最好是去问开发吧,你给的html代码中是没有任何button的。
有可能是javascript代码动态生成了个button,但是div所在的层style.display 为none
这样不能直接在页面上去view source,可以开启update run mode更新下active窗口中的对象,然后在这里view source,能看到javascript动态生成的对象。
作者:
YangMay
时间:
2010-11-25 16:26
最后问题是怎么解决的呢?
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2