Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从不断变化的字段中动态获取记录数?_C#_Selenium - Fatal编程技术网

C# 如何从不断变化的字段中动态获取记录数?

C# 如何从不断变化的字段中动态获取记录数?,c#,selenium,C#,Selenium,在我们的应用程序的表格底部,我们有一个字段,上面写着“显示x个条目中的x到x”,其中x是表格中的条目数 我正在尝试创建一个函数,该函数可以保存上面字符串中的最后一个“x”值,以便在删除记录后将其与新值进行比较 例如 文本为“显示100项中的第1-100项” (我想将最后100个数字存储为x以进行断言) 删除1条记录 文本为“显示99项中的第1-99项” (我想将最后99个数字存储为y以进行断言) 有没有直接的方法用C#或硒来存储这些值?问题是,当测试运行时,由于之前运行的其他测试,上面的x和

在我们的应用程序的表格底部,我们有一个字段,上面写着“显示x个条目中的x到x”,其中x是表格中的条目数

我正在尝试创建一个函数,该函数可以保存上面字符串中的最后一个“x”值,以便在删除记录后将其与新值进行比较

例如

  • 文本为“显示100项中的第1-100项”
  • (我想将最后100个数字存储为x以进行断言)
  • 删除1条记录
  • 文本为“显示99项中的第1-99项”
  • (我想将最后99个数字存储为y以进行断言)

有没有直接的方法用C#或硒来存储这些值?问题是,当测试运行时,由于之前运行的其他测试,上面的x和y值将始终不同。我知道,从长远来看,我应该为测试提供一致的数据,但现在这是以后的问题。

最简单的存储是本地变量,漂亮、干净且包含:

[TestFixture]
public class MyTests {
  [Test]
  public void YourTest() {
    var number = 0;

    number = myPageObjectModel.GetResultCount();

    myPageObjectModel.Delete();

    Assert.AreEqual(number - 1, myPageObjectModel.GetResultCount());
  }
}
您可以将数字存储在类中,这样可以更广泛地使用,但我觉得这将开始耦合您的测试,因为它们必须以特定的顺序运行,因此如果可以,我建议从局部变量开始


如果您使用的技术强制您在不同类(如SpecFlow)中的方法之间跳过,那么最好在场景上下文类中的步骤之间保留状态。

您在Selenium上使用的是什么测试框架?几乎所有的测试都提供了某种形式的测试上下文来存储状态,但如果在单个测试中执行此操作,则可以使用局部变量。我使用NUnit而不是Selenium。另一种解决方案是修改测试,而不是在框架中创建新功能。我可以将TableInformation的字符串存储为x,创建一个新记录,删除新记录,然后将TableInformation获取为y,并断言(x=y)。谢谢你让我思考!