首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

selenium 等候特定element加载完成,在进行后续操作

2012-06-29 
selenium 等待特定element加载完成,在进行后续操作在使用selenium 进行测试的时候经常会碰到 ** element不

selenium 等待特定element加载完成,在进行后续操作

在使用selenium 进行测试的时候经常会碰到 ** element不存在的问题,而实际上这个元素是存在的

出现这个问题的主要原因是,当selenium去操作特定元素A的时候,这个A元素还没有加载完成在页面上没有显示出来,

selenium固然是找不到的

要解决这个问题一开始我是这样实现的:

Thread.sleep(10000),我先睡一会,然后去操作,或者使用selenium.wait(10000),等待一会再去操作

也或者使用 selenium.waitForPageToLoad(""); 但是这个方法是加载“新”?页面完成,如果不是新页面,如ajax操作的一个页面,这个方法就不灵了

自己写个方法,循环等待这个元素,如果这个元素存在就停止等待,否则超时后退出:

private void waitForAllElementLoad(String locator,long timeout){     for (int second = 0;; second++) { logger.error("waitForAllElementLoad=============>"+second);           if (second >= timeout){logger.error("timeout");break;}             if (selenium.isElementPresent(locator))break;             try {   selenium.wait(1000);//or Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}                    }}

?

?

?

哈哈哈

刚刚经过测试:
这个方法更OK ,上面的大家可以不用看了

selenium.waitForCondition("var isExist = selenium.isElementPresent("css=input[value=创建]");isExist==true", "30000");

?

?

?

?

1 楼 山脚下的农民 2010-08-11   不错,有意义 2 楼 cxr1217 2010-08-11   山脚下的农民 写道不错,有意义
O(∩_∩)O~

热点排行