2011-11-03 10 views
1

に失敗した私は、このテストを試してみてください。webdriverを、Selenium2 - 簡単なテストが

@Test 
public void theUserShouldBeAbleToTypeInQueryTerms() { 
    WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.google.com"); 
    WebElement queryField = driver.findElement(By.name("q")); 
    queryField.sendKeys("cats"); 
    queryField.submit(); 
    assertThat(driver.getTitle(), containsString("cats")); 
} 

が、エラーが発生しました:

Failure, Expected: a string containing "cats" got: "Google"

どのように私はSUCCESSを持つようにテストを変更することができますか?

答えて

0

検索結果のページがまだロードされていない可能性があります。アサーションを実行する前に数秒待ってください。

1

WebDriverWaitクラスを使用する必要があります。タイトルが「cats」またはタイムアウトに等しくなるまで待機します。 これはどのように動作するかの例です(ただし、コードを調整する必要があります):

public static void waitForTitle(final PageTitle title, WebDriver driver) { 
    new WebDriverWait(driver, TestDriver.WAIT_TIMEOUT).until(new Function<WebDriver, WebElement>() { 

     public WebElement apply(WebDriver driver) { 
      for (WebElement we : PageHelper.findElements(WebElementLocator.pageHeader, driver)) { 
       if (we.getText().equals(title.getValue())) { 
        return we; 
       } 
      } 
      throw new NoSuchElementException("Title not found: \"" + title.getValue() + "\""); 
     } 
    }); 
} 
関連する問題