51Testing软件测试论坛

标题: xpath 对于style属性的定位 [打印本页]

作者: casilin    时间: 2011-3-14 08:28
标题: xpath 对于style属性的定位
我现在在写一个单元测试,其中要测试某个用户登录进去之后看不到某个节点,在页面代码里是把这个节点的display设成了none。然后我用xpath去定位这个不显示的li节点,我该怎么写地址呢?我写 li[@style='display:none'],但说找不到,然后我改成li[@style='display:none;'],也还是找不到,好奇怪,有没有哪位大侠帮帮忙?谢谢~~
作者: robin.von    时间: 2011-3-14 14:57
//li[contains(@style,'display:none')]

最好把那段源代码帖出来,只靠这个STYLE定位的话,有可能会有很多重复的!
作者: casilin    时间: 2011-3-15 16:25
回复 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,证明其存在以及不存在
作者: robin.von    时间: 2011-3-15 17:03
//li/a[text()='menu3']

如果要测试这个元素是否可见可以取//li/a[text()='menu3']/../@style的值,
看是否有display:none
作者: casilin    时间: 2011-3-16 08:40
回复 4# robin.von

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

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

按理说这样写的话,对于这个menu3隐藏的情况就应该assertTrue是通过的呀。不懂为什么不对额。麻烦大侠再次帮我看看,谢谢~
作者: casilin    时间: 2011-3-16 08:43
回复 4# robin.von 

还有如果直接取值看的话,java中怎么取这个xpath的值呢
作者: robin.von    时间: 2011-3-16 09:20
assertTrue(selenium.isElementPresent("//li/a[text()='menu3']"));       
String style = selenium.getAttribute("//li/a[text()='menu3']/../@style");
System.out.println(style);

按上面的CODE调试一下试试吧!
作者: casilin    时间: 2011-3-16 11:26
回复 7# robin.von


哈,对了,非常感谢~~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2