51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2921|回复: 14
打印 上一主题 下一主题

[原创] 求助,怎么取得webelement的值

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-1-31 11:28:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 digiLatte 于 2013-1-31 12:01 编辑

用了很多方法都取不到这两个值:

http://www.tdcommercialbanking.c ... _cal/exchangeCal.pl
谁来指导一下


本帖子中包含更多资源

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

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

使用道具 举报

该用户从未签到

15#
发表于 2013-2-7 14:53:29 | 只看该作者
lgh75560 的方法是最方便的。正则匹配多个的话就多试几次加个index
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2013-2-4 13:22:04 | 只看该作者
这个问题中的关键,LZ没说出来,红圈中的数值是动态变化的,通过QTP抓到的值在回放时经常会对象匹配失败。即 ...
泰然 发表于 2013-2-3 14:08



    对,是动态的,正是我遇到的难点
我还没学习到childnodes
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2013-2-4 13:19:05 | 只看该作者
回复  digiLatte

第一点:要获取值,肯定要找到一个控件,里面的值,有我想要的,
这里抓到的是Font元 ...
lgh75560 发表于 2013-2-1 14:52


能解析一下 “第二点,怎么用描述性最快捷获取到这个元素” 吗?
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2013-2-3 14:08:51 | 只看该作者
这个问题中的关键,LZ没说出来,红圈中的数值是动态变化的,通过QTP抓到的值在回放时经常会对象匹配失败。即使用正则表达式,也要防止匹配到多个的问题。

建议通过web的标签结构用childnodes方法来定位这行文字。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2013-2-1 14:52:45 | 只看该作者
回复 10# digiLatte

第一点:要获取值,肯定要找到一个控件,里面的值,有我想要的,
这里抓到的是Font元素,但不一定必须是这个元素,你截图上的NOBR元素也是可以的

第二点:怎么获取这个值,比较好,看SPY上的属性,如果很长,或者数据重复比较严重,肯定不好弄,要写一定量的判断,(无疑添加了负担)

第三点:正则表达式描述法,比较快捷

总结以上:
第一点,随便找个元素,里面有我要的字符串,
第二点,怎么用描述性最快捷获取到这个元素
第三点,字符串的提取
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2013-2-1 12:42:07 | 只看该作者
纯属另外一种看法,手动检查点,不知道你喜欢不喜欢
lgh75560 发表于 2013-1-31 16:26


方法可行,我有些技术性问题
请问你是怎么知道: WebElement("html tag:=FONT","innerText:=Conversion.*"), 怎么知道这个webElement是取html tag:=FONT, and innerText:=Conversion.*
我用object spy也没看出来?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2013-1-31 17:08:37 | 只看该作者
回复 7# 黑羽祭


    额 ,因为从中得出的字符串没有固定的符号 所以我感觉也不能用split 所以不知道用什么了嘛
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2013-1-31 16:26:10 | 只看该作者

  1. 'Conversion : 97.15 USD [exchange rate: 1.0293]  》》目标字符串
  2. Dim result
  3. result=Browser("Foreign Exchange Calculator").Page("Foreign Exchange Calculator_2").WebElement("html tag:=FONT","innerText:=Conversion.*").GetROProperty("innerText")

  4. Set regEx =CreateObject("VBScript.RegExp")  '正则对象
  5. regEx.Pattern = "[\d]+.[\d]+"   '格式为  》》数字.数字
  6. regex.MultiLine = True       '可能有换行符
  7. regex.Global = True          '这句是必须的,不知道为什么
  8. Set Matches = regEx.Execute(result)

  9. print Matches.item(0).value   '97.15
  10. print Matches.item(1).value   '1.0293
复制代码
纯属另外一种看法,手动检查点,不知道你喜欢不喜欢
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    7#
    发表于 2013-1-31 16:06:52 | 只看该作者
    本帖最后由 黑羽祭 于 2013-1-31 16:07 编辑

    回复 6# zhangkun90


       .............没事在那YY什么的。
    不要猜测我的做法。
    想想么也不可能用Left和Right啊。
    你发出来那句话不就知道了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2013-1-31 14:57:14 | 只看该作者
    回复 5# 黑羽祭


        用 left  right 切么 但是 这个数值是会变化的 ,比如说第一个值小数点前面可能是三位 可能是两位 也可能是4位  咱应该怎么切呢 是用判断的的方式么?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    5#
    发表于 2013-1-31 14:29:32 | 只看该作者
    回复 1# digiLatte


        你innertext里这不都抓到了嘛。
    你Object.GetROProperty("innertext")一下,打印出来的数据再发上来。
    你要是不会截取,我可以帮你切。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2013-1-31 13:58:44 | 只看该作者
    回复 1# digiLatte


        用输出值  如附件, 就可以取到了 虽然不能用 object.getroproperty("") 取值 只能用这样了   还可以用 切割的方法  但是 那种比这种麻烦多了 不知道你还有没有更好的方法

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    3#
    发表于 2013-1-31 11:44:16 | 只看该作者
    回复 1# digiLatte


        是有截图么?没看到图。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2013-1-31 11:38:30 | 只看该作者
    你这个网址 所有空间都能正常识别啊。。。 你要取哪个控件的 值啊
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-22 19:47 , Processed in 0.076850 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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