2017-03-08 54 views
0

我想知道Selenium C#中有任何Assert類,就像我們在編碼UI測試中一樣。 或者我將使用Microsoft.VisualStudio.TestTools.UnitTesting.Assert類在selenium中執行斷言。 感謝在硒C中斷言#

回答

3

是的,你會使用Assert類的單元測試框架,你的情況MSTest

selenium庫沒有過測試框架類型的功能,包括asserts責任。您可以使用支持許多不同框架的FluentAssertions,其中包括MSTest,如果您因任何原因需要切換框架,可能會將需要的更改減至最少。

+0

感謝@ mrfreester..its幫助我很多 – rana

+0

@rana沒問題!如果您覺得此答案對您的問題有足夠的幫助,請不要忘記將其標記爲答案。快樂編碼:) – mrfreester

0

Assert類可用於MSTestNUnit框架。 我使用了NUnit,並有Assert類如下面的代碼行。

示例代碼

Assert.AreEqual(AmericaEmail, "[email protected]", "Strings are not matching"); 
-1

這樣斷言,可用於切換到彈出窗口的顯示:

IAlert alert = driver.SwitchTo().Alert(); 
String alertcontent = alert.Text; 
Assert.AreEqual(alertcontent, "Do you want to save this article as draft?"); 
obj.waitfn(5000); 
alert.Accept(); 
0

根據https://msdn.microsoft.com/en-us/library/ms182532.aspx

[TestClass] 
public class UnitTest1 
{ 
    private IWebDriver driver; 
    [TestInitialize] 
    public void Setup() 
    { 
     driver = new ChromeDriver(); 
     driver.Url = "Your URL"; 
    } 

    [TestMethod] 
    public void TestMethod1() 
    { 
     //Your first test method 
     var element = driver.FindElement(By.Id("ID")); 
     Assert.IsTrue(element.Displayed); 
     Assert.AreEqual(element.Text.ToLower(), "Expected text".ToLower()); 
    } 

    [TestMethod] 
    public void TestMethod2() 
    { 
     //Your second test method 
    } 

    [TestCleanup] 
    public void TearDown() 
    { 
     driver.Quit(); 
    } 
} 
0

要使用斷言你有首先創建單元測試項目在Visual Studio中。 或 以下參考項目導入。

`using Microsoft.VisualStudio.TestTools.UnitTesting; 
//Using this You can use Assert class. 
Assert.IsTrue(bool); 
Assert.IsFalse(bool); 
Assert.AreEqual(string,string); 
` 
0

您可以使用MSTest或我寧願寫簡單的斷言方法。在硒中,大部分用例都是布爾檢查,IsTrue | IsFalse(你甚至可以擴展到編寫更復雜的斷言),所以當你定義自己的說法,你會得到你的腳本,喜歡更多的控制,

  • 獲取屏幕截圖,如果斷言失敗
  • 你可以住與該故障並繼續測試
  • 可以標記腳本部分通過
  • 從UI提取更多的信息,如,JavaScript錯誤或服務器錯誤