【转载】用selenium高效应对Web页面元素刷新

上一篇 / 下一篇  2011-09-19 17:50:32 / 个人分类:Selenium

原文地址:http://lijingshou.iteye.com/blog/899809
当我们在页面上进行selenium.type()或者selenium.click()操作的时候,往往需要需要等待一个元素的出现,对于一般的网页,当我们进入一个新页面的时候,往往会使用selenium.waitForPageToLoad(WAITTIME);对弹出窗口中的元素,往往写死要等待多少秒,其实可以使用如下更加通用高效的方法,自己写一个waitForElement()的方法:
Java代码protected void waitForElement(String target) {   
  1.     for (int second = 0;; second++) {   
  2.         if (second >= 60) {   
  3.             LOGGER.debug("Element:" + target   
  4.                     + " can't be found after 60 seconds");   
  5.             fail("find element timeout: " + target);                   
  6.         }   
  7.         try {   
  8.             if (selenium.isElementPresent(target))   
  9.                 break;   
  10.         } catch (Exception e) {   
  11.             LOGGER.debug("Element:" + target   
  12.                     + " can't be found in 60 seconds");   
  13.             assert (false);   
  14.         }   
  15.         pause(1000);   
  16.     }   
  17.   
  18. }  
这段代码的功能是让我们最多等待某个元素60秒,直至它出现,否则就让test case失败,当我们要click或者type某个元素的时候,就先调用这个方法,下面是经过改进的click方法
Java代码
protected void click(String locator) {   
  1.         waitForElement(locator);   
  2.         selenium.click(locator);   
  3.     }  
从此,我们可以不管页面倒是是不是ajax实现,只要调用这样的click()方法,程序中就不需要出现Thread.sleep(10000)这样的代码了.

TAG:

 

评分:0

我来说两句

日历

« 2024-03-01  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 30588
  • 日志数: 30
  • 文件数: 1
  • 建立时间: 2011-06-20
  • 更新时间: 2013-06-03

RSS订阅

Open Toolbar