51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2867|回复: 17
打印 上一主题 下一主题

[原创] -----如何抓取指定页面上的特定文字-------

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-7-31 11:44:20 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
现在需要打开被测系统的每一个模块,然后判断该页面是否报错(就是搜索页面上是否有“错”字),若有报错则不关闭模块,没报错就关闭模块


1、用Src_text=TextUtil.GetText(0, 20, 20, 2000, 2000)  来截屏,可惜该方法与windons冲突,每次允许到该行代码就报错
2、用Set mydesc=description.Create()
        mydesc("html tag").value="B"
        mydesc("innertext").value=".*错.*"
        MyDesc("innertext").RegularExpression = true
        if Browser("CreationTime:=1").Page("index:=0").webelement(mydesc).Exist(0)  Then

因为每个模块都是以tab页的方式打开,若当前有个模块已打开,且搜索到指定文字,那么此后的模块即使没错也不会被关闭,因为总是会搜索到前面tab页面上有指定文字,如何才能只搜索当前tab页呢

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2012-7-31 20:52:01 | 显示全部楼层
本来是要加在Page和WebElement间frame,但属性都一样,只能通过index来区分,问题是每个frame的index事先不知道,且无规律,不知还能有什么方法
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-7-31 20:52:25 | 显示全部楼层
本帖最后由 zengli80 于 2012-7-31 20:57 编辑
在Page和WebElement间再添加一层对象,用于标识tab页
hsjzfling 发表于 2012-7-31 17:53


本来是要在Page和WebElement间加frame,但属性都一样,只能通过index来区分,问题是每个frame的index事先不知道,且无规律,不知还能有什么方法
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2012-8-1 00:00:40 | 显示全部楼层
若很难找到一层可以区分的对象,可以用比较暴力点的方法


该方法执行效率会偏低,可将全局同步等待时间 ...
hsjzfling 发表于 2012-7-31 21:39


按照你的方法,写了以下代码,总是在当前页可见,是怎么回事呢?

Browser("CreationTime:=0").Page("index:=0").link("text:=收件箱","index:=0").Click

Set mydesc=description.Create()
        mydesc("html tag").value="SPAN"
        mydesc("innertext").value="客服"
        MyDesc("innertext").RegularExpression = true
        If Browser("CreationTime:=0").Page("index:=0").webelement(mydesc).Exist(0)  Then
          On Error Resume Next
          Err.Clear
          Setting.WebPackage("ReplayType") = 2
          Browser("CreationTime:=0").Page("index:=0").webelement(mydesc).Click
          Setting.WebPackage("ReplayType") = 1

         If Err.Number = 0 Then

                msgbox "客服,在当前可见页"
          Else

                msgbox "客服,不在当前可见页"

          End If
End If
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2012-8-1 14:38:22 | 显示全部楼层
加一个visible属性
mydesc("visible").value=True
如果在当前页,那就highlight看下在哪里
Browser("Cre ...
hsjzfling 发表于 2012-8-1 10:12


我要找的文字不在当前页啊,但Err.Number 总是等于0

mydesc("visible").value=True
要加在什么位置啊?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2012-8-1 14:43:09 | 显示全部楼层
总觉得有点像拿自动化工具做性能测试的事情。试试楼上的方法吧,不过我还想知道你所谓的出错到底是个什么样 ...
云层 发表于 2012-8-1 08:33


因为被测系统有几百个模块,每次回归测试,想用自动化来测试有没有模块会报错,报错信息是固定的,会显示“操作出错!”这几个字,不知这个代码怎么写比较好呢?
楼上的方法试过了,但似乎没作用
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2012-8-1 15:19:33 | 显示全部楼层
mydesc("html tag").value="B"
mydesc("innertext").value=".*错.*"
改成
mydesc("html tag").value="B" ...
hsjzfling 发表于 2012-8-1 14:49


还是不行啊!是不是我代码问题
if Browser("CreationTime:=1").Page("index:=0").webelement(mydesc).Exist(0)  Then
         On Error Resume Next
          Err.Clear
          Setting.WebPackage("ReplayType") = 2
          Browser("CreationTime:=0").Page("index:=0").webelement(mydesc).Click
          Setting.WebPackage("ReplayType") = 1

         If Err.Number = 0 Then
                Browser("CreationTime:=0").Page("index:=0").webelement(mydesc).HightLight  '这句没高亮
                j=j+1
         end if
      else
            Browser("CreationTime:=0").Page("index:=0").image("index:="&j+1).Click  '关闭不报错的模块
end if
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2012-8-1 15:23:53 | 显示全部楼层
你的page一直是index:=0不是代表一直是当前页吗?
joykao 发表于 2012-8-1 14:49


用SPY查看不同tab页的对象,都是属于一个page
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-21 21:59 , Processed in 0.076318 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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