2017-07-05 14 views
1

以下教程使用c#測試wikipedia上的搜索功能。我的測試一直失敗,因爲來自h1元素的文本im試圖返回一直返回空。 h1頭文件中肯定有文本。任何想法爲什麼這個元素有文本時返回空?硒返回空文本

IWebDriver driver = new FirefoxDriver(); 
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5)); 
driver.Navigate().GoToUrl("https://en.wikipedia.org/wiki/Main_Page"); 

IWebElement searchInput = driver.FindElement(By.Id("searchInput")); 
searchInput.SendKeys("Christiaan Barnard"); 
searchInput.SendKeys(Keys.Enter); 

IWebElement firstHeading = driver.FindElement(By.Id("firstHeading")); 
Assert.AreEqual("Christiaan Barnard", firstHeading.Text); 
driver.Quit(); 
+1

根據維基百科上搜索如何工作的,你可能需要把一個人工排隊等候,以確保該頁面已經先正確渲染。 – simonlchilds

+0

由於@simonlchilds已經建議。當你執行'driver.FindElement(By.Id(「firstHeading」));'時,我認爲你的頁面沒有被加載。嘗試等待幾秒鐘,然後再次檢查。 –

+1

你們是對的,謝謝 – amberl

回答

1

這可能是因爲元素被找到,但還沒有預期值。最好的辦法是等到文本有預期值,使用WebDriverWait:

var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(5)); 
var result = wait.Until(ExpectedConditions.TextToBePresentInElementLocated(By.Id("firstHeading"), "Christiaan Barnard")); 
Assert.IsTrue(result);