在Selenium C中断言#

时间:2017-03-08 14:50:32

标签: selenium

我想知道Selenium C#上是否存在任何Assert类,就像我们在Coded UI测试中一样。 或者我将使用Microsoft.VisualStudio.TestTools.UnitTesting.Assert类在selenium中执行断言。 感谢

9 个答案:

答案 0 :(得分:3)

是的,您会在单元测试框架中使用Assert类,在您的情况下MSTest

selenium库对测试框架类型的函数没有责任,包括asserts。您可以使用支持许多不同框架的FluentAssertions,包括MSTest,如果您因任何原因需要切换框架,这可能会最大限度地减少所需的更改。

答案 1 :(得分:1)

Assert类适用于MSTestNUnit框架。 我使用了NUnit,并且有Assert类,如下面的代码行所示。

示例代码

Assert.AreEqual(AmericaEmail, "SupportUsa@Mail.com", "Strings are not matching");

答案 2 :(得分: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();
    }
}

答案 3 :(得分:0)

To Use Assert you have to first create the unit testing project in Visual Studio. or import following reference to the project.

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

答案 4 :(得分:0)

您可以使用MSTest,或者我更愿意编写简单的断言方法。在selenium中,大多数用例都是布尔检查,IsTrue | IsFalse(您甚至可以扩展为编写更复杂的断言),因此当您定义自己的断言时,您将获得对脚本的更多控制,例如,

  • 如果断言失败则截取屏幕截图
  • 您可以忍受失败并继续测试
  • 您可以将脚本标记为部分传递
  • 从UI中提取更多信息,例如,javascript错误或服务器错误

答案 5 :(得分:0)

  

Assert.Equals(obj1,obj2); //对象比较
  Assert.AreEqual(HomeUrl,driver.Url); //重载,比较相同的对象值   Assert.AreNotEqual(HomeUrl,driver.Url);
  Assert.AreSame(“ https://www.google.com”,URL); //对于相同的对象引用
  Assert.IsTrue(driver.WindowHandles.Count.Equals(2));
  Assert.IsFalse(driver.WindowHandles.Count.Equals(2));
  Assert.IsNull(URL); Assert.IsNotNull(URL);

答案 6 :(得分:0)

Selenium C#不提供断言类。您必须从某个地方借用它或编写自己的实现。

编写自己的实现将为您提供更多的自由来管理断言,如@Peter所说。

基本概念就是野兔。只需创建一个具有此类断言方法的静态类:

public static class MyAssertClass
{
   public static void MyAreEqualMethod(string string1, string string2)
   {
     if (string1 != string2) 
     {
       // Throw Exception
     }
   }
}

答案 7 :(得分:0)

答案 8 :(得分:-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();