如何使用FirefoxDriver对象使用waitForCondition()函数?

时间:2011-07-05 06:20:42

标签: java ajax firefox selenium drop-down-menu

我是Selenium测试的新手。 我正在使用FireFoxDriver开发自动化测试用例。 我们是否可以选择使用FireFoxDriver对象的waitForCondition()方法? 我的应用程序基于ajax,我需要选择由AJAX生成的下拉列表。

请帮助

2 个答案:

答案 0 :(得分:2)

http://seleniumhq.org/docs/03_webdriver.html

(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.getTitle().toLowerCase().startsWith("cheese!");
        }
});

答案 1 :(得分:0)

您可以手动实现它,例如:

bool condition = false;
while (!condition)
{
   try
   {
      condition = ...
   }
   catch (Exception)
   {
   }      
   Thread.sleep(500);
}

try-catch块允许您使用FindElement搜索特定元素(在本例中为您的下拉列表)。

或者您可以像这样设置超时时间:

FirefoxDriver driver = new FirefoxDriver();
driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 30));

任何调用都会自动继续尝试在抛出异常之前找到指定时间的必要元素