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
代码如下
<div class="left">
<ul id="menu">
<li class="item"><a href="javascript:void(0)" class="title" name="1">menu1</a>
</li>
<li class="item"><a href="javascript:void(0)" class="title" name="2">menu2</a>
</li>
<li class="item" style="display:none' ><a href="javascript:void(0)" class="title" name="3">menu3</a>
</li>
<li class="item"><a href="javascript:void(0)" class="title" name="4">menu4</a>
</li>
</ul>
</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