2015-06-19 49 views
0

我正在使用Selenium自動化應用程序創建測試。測試包括填寫網頁上的字段並點擊提交按鈕。一旦完成,新頁面會加載一條警告,說明成功或失敗。我的問題是,該警告是在CSS類編碼如下:如何使用Selenium驗證css類中的文本?

<div class="alert-box notice"> 
    Successfully created application 
    <a href="" class="close">×</a> 
</div> 

所有我需要做的就是驗證文本「已成功創建的應用程序」的存在。我不需要操縱任何東西。

+0

「捕獲」如何?做什麼? CSS無法檢測內容。 –

+0

您可以使用Selenium本身驗證文本。我不明白你打算如何使用CSS。 – lucasnadalutti

+0

http://stackoverflow.com/search?q=verify+text+selenium –

回答

0

我不確定你在做什麼語言,但基本上,你需要獲取包含div的文本。

因此,例如,

driver.findElement(By.cssSelector(".alert-box.notice")).getText() 
+0

當我嘗試這個時,測試失敗。跟蹤中有以下行: org.openqa.selenium.NoSuchElementException:無法找到元素:{「method」:「css selector」,「selector」:「。alert-box.notice」} –

+0

@EricScott我最好的猜測是在它出現之前有一段延遲。我會建議等到元素存在,然後再進行測試。 –

0

與我的同事和很多網上研究一番討論後,這裏是我找到了解決辦法。

起初我試圖根據Nathan的建議捕獲文本,但決定將結果存儲爲字符串。

String happy = driver.findElement(By.className("alert-box notice")).getText(); 
assertEquals(true, happy.contains("Successfully")); 

的問題,這是我一直得到錯誤,例如,「org.openqa.selenium.InvalidSelectorException:給定的選擇警報框通知無效或不導致WebElement以下錯誤發生: InvalidSelectorError:複合類名稱不允許」

因爲我有在類名沒有控制,我去了XPath的路線如下:

String happy = driver.findElement(By.xpath("html/body/div/div[2]/div/div/div/div[3]/div")).getText(); 
assertEquals(true, happy.contains("Successfully")); 

這個版本可以正常運行,我能夠驗證警報消息。