您的位置:首页 > 其它

Selenium的getXpathCount方法的实际问题解决

2011-10-31 17:47 155 查看
getXpathCount方法的问题解决

使用该方法会出现很让你头疼的问题,当你要得到的元素被包含在IFrame中时,如果你直接用getXpathCount方法时,返回值为0;可能你所测试页面还加入了ajax的东西,比如弹出层,类似结构如下:

<DIV id="div_1">
<IFRAME>
<HTML>
<HEAD>...</HEAD>
<BODY>
<TABLE>
<TR>...</TR>
...
...
</TABLE>
</BODY>
</HTML>
</IFRAME>
</DIV>
如果你想得到body里面类似TR个数的内容时,如上所说,返回值就会是0。因为这个元素被放置在IFRAME里。所以在使用该方法之前首先要选中该IFRAME。

方法如下:

selenium.selectFrame("xpath=//div[@id='div_1']/iframe");
Number c = selenium.getXpathCount(....); //此处就是你要得到的元素内容
int count = c.intValue();
System.out.println("当前元素个数为 " + count);
当你使用上面方法后,应该会解决。但可能由于页面使用了Ajax,所以得到值依然会是0。所以这便是要解决的最终问题。其实方法相当简单

Thread.sleep(4000); //将该句加入到上面代码最前边。当然这样也存在某些问题,比如说服务器太慢而会导致同样返回0,但目前这样做也是最直接有效地!~

你同样可以用selenium.waitForCondition()来代替Thread.sleep()方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐