51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

Selenium验证值问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-9-3 08:39:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个添加功能完成后会把添加的数据显示在结构树上。我要验证这个数据是否成功显示在树上。问题是这个数据在树的位置不固定,我怎样用xpath来定位呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-9-3 09:36:57 | 只看该作者
这个位置怎么个不固定法,一点规律都没有?如果你手工,你添加一个数据,能知道他在哪个位置否?
如果一点规律,你就直接在树上找下数据有没有出来?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-9-3 10:38:39 | 只看该作者
添加的数据是按字母顺序排序显示在树上的,添加时程序并不知道树上已经有哪些数据。我初步的想法是做个循环遍历这个树,但也不知道怎样把树上节点的个数取出来。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-9-3 11:30:46 | 只看该作者
我刚看了下xpath。
//title[text()="淘宝网 - 淘!我喜欢"]/following::*[1] 这个可以得到你测试数据的后一个兄弟节点。
//title[text()="淘宝网 - 淘!我喜欢"]/preceding::*[1]  这个可以得到你前一个兄弟节点。

不知道这个方法是否比循环要快点。只要取得到你的新增的元素。再看下前一个和后一个是否是按字母排序。

考虑到preceding::*还是比较慢。这里可以过滤出特定的tag
比如我要过滤出script tag 第一个的。如下:
//title[text()="淘宝网 - 淘!我喜欢"]/preceding::script[1]
这样应该会更加快点哈

[ 本帖最后由 小米啊 于 2010-9-3 11:40 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2010-9-3 12:10:17 | 只看该作者
谢谢小米。我的问题是取不到我新增的元素。树上所有的节点都是动态生成的,而且新增的这个也不知道在第几个节点,没法定位。你说的这个好像解决不了我的问题。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-9-3 14:02:18 | 只看该作者
我也是刚接触Selenium,既然只是为了验证某个值,那能否使用isTextPresent方法呢?比如:
assertTrue(selenium.isTextPresent("test_百度百科")); //验证该页面是否存在"test_百度百科"
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-9-3 16:44:46 | 只看该作者
原帖由 bobo45123 于 2010-9-3 14:02 发表
我也是刚接触Selenium,既然只是为了验证某个值,那能否使用isTextPresent方法呢?比如:
assertTrue(selenium.isTextPresent("test_百度百科")); //验证该页面是否存在"test_百度百科"


这个是一个验证点,我还想验证是否出现在合适的位置
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-9-3 16:46:34 | 只看该作者

回复 5# 的帖子

你新增的元素name 你是知道的呀。或其它属性。
我上面的是假设你知道新增加节点的text
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2010-9-6 07:59:33 | 只看该作者

回复 6# 的帖子

我想过这个方法,但页面的其他位置也有相同的内容,并不能保证树上一定有这个值
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2010-9-6 08:05:44 | 只看该作者

回复 8# 的帖子

小米,这个name值是写在<span>节点中的,如<span>Test</span>。所有的节点的标签属性值都相同,除了span里的值不同,所以我没法定位。

用什么方法才能把节点个数取出来呢?我好做个循环。查了xpath的count()函数能取出节点个数,但好像没法赋值到变量里。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-9-6 20:03:26 | 只看该作者
int n = selenium.getXpathCount("//span");
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2010-9-7 08:02:21 | 只看该作者

回复 11# 的帖子

谢谢,我要的是这个 学习了。
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2010-9-7 14:33:08 | 只看该作者
终于搞明白了,用这个就行了。
Assert.IsTrue(selenium.IsElementPresent("//a/span[text()='TEST']"))
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-8 17:43 , Processed in 0.071213 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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