Selenium的getXpathCount方法的实际问题解决
2011-10-31 17:47
232 查看
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()方法
使用该方法会出现很让你头疼的问题,当你要得到的元素被包含在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()方法
相关文章推荐
- Selenium的getXpathCount方法的实际问题解决
- hadoop2.2.0配置eclipse运行wordcount程序问题及解决方法
- python selenium运行,打包exe常见问题解决方法
- IE下Ajax缓存问题的快速解决方法(get方式)
- 解决Fiddler查看Get方法传递URL参数中文乱码问题
- PHP中使用file_get_contents抓取网页中文乱码问题解决方法
- IE浏览器用GET方式传递中文字符出现乱码问题的解决方法
- winform上控件太多,绘制时会逐个出现,通常说双缓冲能解决但实际不能解决的问题的解决方法
- 【开源自动化测试疑难FAQ】【WebDriver】封装GET方法来解决页面跳转不稳定的问题
- sun-java6-jdk 无法apt-get install 的问题解决方法
- JNA 实际开发中若干问题解决方法
- C# 中 SerialPort.GetPortNames 获取串口号错误的问题及解决方法
- 遇到第二个页面需要第一个页面Get解析的json串的数据时所遇到的问题解决方法!!
- npm中Error: could not get uid/gid问题的解决方法
- vue-cli的axios使用方法,get、post请求的跨域问题解决
- ActionBarSherlock SlidingMenu整合,解决SlidingMenu example的getSupportActionBar()方法不能用问题
- Ajax GET方法乱码问题解决
- System.Configuration.ConfigurationSettings.GetConfig(string)”已过时 问题的解决方法
- rattle安装gtk_buildable_get_name问题解决方法
- winform上控件太多,绘制时会逐个出现,通常说双缓冲能解决但实际不能解决的问题的解决方法。