51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 14219|回复: 12
打印 上一主题 下一主题

[Robot] 請問Robot 如何快速使用座標定位

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-9-7 17:24:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大大您好,小弟我最近在學習上發現Robot 在當網頁使用Input Type="File" 為上載檔案的按鈕時,錄製後無法正常執行回放的動作,也就是說無法正確執行Click的動作,
其中Scritp 為
PushButton Click, "Type=PushButton;Index=1"

於是我想利用HTML Click, "", "Coords=340,213"
的方式進行座標定位點選,可以解決無法正確點選的問題,但是在取決座標上卻經常無法正確定位,而感到挫折.....

請問各位大大,有誰可以教導小弟我遇到的問題,由衷感激!!! 謝謝!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-9-8 09:23:23 | 只看该作者
使用坐标定位,每次需要注意的是坐标的变化,这样为了保证每次脚本回访成功,我们要注意每次让他们的测试状态一样(和录制脚本时候一样!)
比如你的软件(ie)为最大化状态,那么你每次回放脚本肯定是一样的坐标

第一个脚本
  PushButton Click, "Type=PushButton;Index=1"
解决方法:查看包含着个pushbutton的这个页面是否动态生成的,也就是这个index是否每次都是1。
   或者替换掉index为其他标示比如text=xxxx

第二个问题
   应该考虑窗体状态(页面位置)
  还有web测试中要考虑其中的有层次的概念,所以要用“/“把层次表示出来

如:HTML Click, "xxxx/xxxx/pushbutton", "Coords=340,213"
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2004-9-8 10:36:52 | 只看该作者

座標定位使用方式

謝謝協助,在第一個腳本中,我這裡的index每次都是1 ,但PushButton 的執行,每次點選都只顯示在瀏覽按鈕旁邊的欄位內(可看出直線一閃一閃的等待輸入符號),並不會執行點選瀏覽鈕所應該跳出的上載檔案選擇對話視窗...
你說的其他标示比如text=xxxx ,我還是不清楚,因為我在inspector 中看到的如下
- PushButton;Index=1
       HTML Text
    + Properties
在外層和 Properties內層看不到text,如上所述,不知PCL 兄 你會建議如何修改,在PushButton 的 recMethod$ 中遇到我這個情況,您會如何選擇ㄋ ?

第二個問題我在這裡所謂的層次 "xxxx/xxxx/pushbutton" 看不懂,可以舉例說明ㄇ,真不好意思,腦筋打結中....還望PCL 撥空指導,謝謝!!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2004-9-16 10:51:55 | 只看该作者
我建立一个网页来模拟你的实际应用!来说明问题

HTML代码如下

框架代码
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<title>新建网页 2</title>
</head>

<frameset rows="64,*">
  <frame name="header" scrolling="no" noresize target="main" src="hello_world.htm">
  <frame name="main" src="new_page_3.htm">
  <noframes>
  <body>

  <p>此网页使用了框架,但您的浏览器不支持框架。</p>

  </body>
  </noframes>
</frameset>

</html>

hello_world.htm代码
<html>

<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Hello World</title>
<base target="main">
</head>

<body>

<p>Hello World</p>

</body>

</html>


new_page_3.htm代码
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 3</title>
<SCRIPT FOR="B3" EVENT="onClick" LANGUAGE="VBScript">
    MsgBox "上传文件!"
  </SCRIPT>
</head>

<body>
<form method="POST" action="--WEBBOT-SELF--">
  <!--webbot bot="SaveResults" u-file="C:\Documents and Settings\Administrator\桌面\test\_private\form_results.csv" s-format="TEXT/CSV" s-label-fields="TRUE" --><p>
  <input type="button" value="上传" name="B3">
  <input type="submit" value="提交" name="B1">
  <input type="reset" value="重置" name="B2"></p>

</form>
</body>
</html>

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2004-9-16 10:58:56 | 只看该作者
这里要说明问题的是内部的上传按钮是在外部的Frame框架下边
这个Frame就是这个按钮的“父“
那么在脚本函数(Robot)中就要用他们的“层“次-父子关系来定位这个上传按钮的位置!这也就是有的时候大家在网页编程开发脚本的时候遇到的1003错误,找不到对象!就是因为这个原因,定位不到你要找道的对象
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2004-9-16 11:39:23 | 只看该作者
这个Frame是,其实就是HTMLFrame类型,那么上边的定位问题就要在他们中间(表示层的关系)使用【;\;】把识别字符串格开。
SQABasic Sample中的说明是:
This example clicks the check box with a Value attribute of 2. The check box is located within the Web page frame named Main.

CheckBox  Click, "Type=HTMLFrame;HTMLId=Main;\;Type=CheckBox;HTMLText=2"

为了解决上边定位的问题,写了下边的代码
Sub Main()
dim result as integer
Dim status as Integer

Dim StateString As String
StartBrowser "C:\Documents and Settings\Administrator\桌面\test\index.htm", "WindowTag=WEBBrowser"

Result = SQAGetProperty("HTMLDocumnet,HTMLTitle=新建网页2;\;HTMLFrame,Name=main;\;HTMLDocumnet,HTMLTitle=新建网页3;\;Type=PushButton;Name=B3", "Value", StateString)
stop
sqaconsolewrite "获取结果" & Result
sqaconsolewrite StateString
End Sub
(上边的例子我没有经过调试)其中的\你可以看到他的父子关系!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2004-9-16 11:42:49 | 只看该作者
在外層和 Properties內層看不到text,如上所述,不知PCL 兄 你會建議如何修改,在PushButton 的 recMethod$ 中遇到我這個情況,您會如何選擇ㄋ ?
这个问题用上边的同样的方法,你可以试验一下!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2004-9-19 11:25:52 | 只看该作者
经过实验,发现SQAGetProperty这句有点问题,现贴出我的结果如下:

Result = SQAGetProperty("Caption=新建网页 2 - Microsoft Internet Explorer;\;Type=HTMLFrame;HTMLId=main;HTMLTitle=新建网页 3;\;Type=PushButton;Name=B3", "Value", StateString)

需要注意HTMLId=main和HTMLTitle=新建网页 3是属于一层的。

有时候回复只是提供了个思路,需要通过实验验证。所以希望大家多动脑筋,多动手。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2005-1-22 00:19:54 | 只看该作者

感謝司空公子以及PCL2004_27指導與分享!!!

去年工作比較忙已經把自動化時間分散開了,最近又將思路跑過一遍,驗證上述不解之處,承蒙兩位大大的提醒與指導,豁然開朗....謝謝!!!
驗證結果如下:
Result = SQAGetProperty("Type=HTMLFrame;HTMLId=main;\;Type=PushButton;Name=B3","Value",StateString)

就可以正常取得值 。得証~~父子階層的對應關係~~
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2005-12-20 11:14:53 | 只看该作者
为什么我录制PCL的网页没有你们说的层次问题?可以正常回放?
脚本如下:

Sub Main
    Dim Result As Integer

    'Initially Recorded: 2005-12-20  11:03:59
    'Script Name: tt
   
    Window SetContext, "Caption=Inspector Document - Inspector", ""
    Window WMinimize, "", ""
    StartBrowser "C:\Documents and Settings\LiuJie\桌面\try.htm", "WindowTag=WEBBrowser"
   
    Window SetContext, "WindowTag=WEBBrowser", ""
    PushButton Right_Click, "Text=为帮助保护您的安全,Internet Explorer 已经限制此文件显示可能访问您的计"
    PopupMenuSelect "允许阻止的内容(A)..."
   
    Window SetContext, "Caption=安全警告", ""
    PushButton Click, "Text=是(Y)"
   
    Window SetContext, "WindowTag=WEBBrowser", ""
    GenericObject Click, "Class=Internet Explorer_Server;ClassIndex=1", "Coords=30,99"
   
    Window SetContext, "Caption=VBScript", ""
    PushButton Click, "Text=确定"

End Sub
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-4-23 14:30:11 | 只看该作者
强悍~!
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-8-1 23:56:33 | 只看该作者
hao
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2010-7-19 13:23:22 | 只看该作者
站个座
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-24 14:48 , Processed in 0.080120 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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