51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3349|回复: 7
打印 上一主题 下一主题

xpath 对于style属性的定位

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-3-14 08:28:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在在写一个单元测试,其中要测试某个用户登录进去之后看不到某个节点,在页面代码里是把这个节点的display设成了none。然后我用xpath去定位这个不显示的li节点,我该怎么写地址呢?我写 li[@style='display:none'],但说找不到,然后我改成li[@style='display:none;'],也还是找不到,好奇怪,有没有哪位大侠帮帮忙?谢谢~~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2011-3-14 14:57:41 | 只看该作者
//li[contains(@style,'display:none')]

最好把那段源代码帖出来,只靠这个STYLE定位的话,有可能会有很多重复的!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2011-3-15 16:25:09 | 只看该作者
回复 2# robin.von


代码如下

  1. <div class="left">
  2.                   <ul id="menu">
  3.                         <li class="item"><a href="javascript:void(0)" class="title" name="1">menu1</a>
  4.                     </li>
  5.                         <li class="item"><a href="javascript:void(0)" class="title" name="2">menu2</a>
  6.                         </li>
  7.                         <li class="item" style="display:none' ><a href="javascript:void(0)" class="title" name="3">menu3</a>
  8.                         </li>
  9.                         <li class="item"><a href="javascript:void(0)" class="title" name="4">menu4</a>
  10.                         </li>
  11.                 </ul>
  12. </div>

复制代码
然后我就是要定位到这个menu3,证明其存在以及不存在
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2011-3-15 17:03:11 | 只看该作者
//li/a[text()='menu3']

如果要测试这个元素是否可见可以取//li/a[text()='menu3']/../@style的值,
看是否有display:none
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2011-3-16 08:40:28 | 只看该作者
回复 4# robin.von

我用//li[@style='display: none;']/a[text()='menu3'] 可以定位到这个menu3了,但是放到代码里还是不对。我是这样写的:

assertTrue(selenium.isElementPresent("xpath=//li[@style='display: none;']/a[text()='menu3']"));

按理说这样写的话,对于这个menu3隐藏的情况就应该assertTrue是通过的呀。不懂为什么不对额。麻烦大侠再次帮我看看,谢谢~
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2011-3-16 08:43:05 | 只看该作者
回复 4# robin.von 

还有如果直接取值看的话,java中怎么取这个xpath的值呢
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2011-3-16 09:20:24 | 只看该作者
assertTrue(selenium.isElementPresent("//li/a[text()='menu3']"));       
String style = selenium.getAttribute("//li/a[text()='menu3']/../@style");
System.out.println(style);

按上面的CODE调试一下试试吧!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2011-3-16 11:26:23 | 只看该作者
回复 7# robin.von


哈,对了,非常感谢~~
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-6 11:13 , Processed in 0.076149 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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