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