Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/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#_Unit Testing - Fatal编程技术网

C# 单元测试标签输出

C# 单元测试标签输出,c#,unit-testing,C#,Unit Testing,有人能帮我吗 如何检查网页上包含以特定字符串开头的标签的输出: 这是我的代码: IWebElement approvedBOm = _driver.FindElement(By.Id("dlBOMLineItems_ctl12_lblApprovalStatus")); Assert.IsTrue(approvedBOm.ToString().StartsWith("Approved By ")); 如果您查看我的代码我的代码,您会发现我想检查标签输出是否以“Approved by”(批准人)

有人能帮我吗 如何检查网页上包含以特定字符串开头的标签的输出:

这是我的代码:

IWebElement approvedBOm = _driver.FindElement(By.Id("dlBOMLineItems_ctl12_lblApprovalStatus"));
Assert.IsTrue(approvedBOm.ToString().StartsWith("Approved By "));

如果您查看我的代码我的代码,您会发现我想检查标签输出是否以“Approved by”(批准人)开头如果您使用的是Selenium,
IWebElement
界面有一个。执行
.ToString()
将为您提供整个对象的表示,而不是返回标签的实际文本。您应该改用
文本
属性:

IWebElement approvedBOm = _driver.FindElement(By.Id("dlBOMLineItems_ctl12_lblApprovalStatus"));
Assert.IsTrue(approvedBOm.Text.StartsWith("Approved By "));
您的一条评论指出,标签实际上包含“批准人…”。如果这正是您要测试的内容,则需要更改
StartsWith
check。如果您不介意文本的大小写,只要它是正确的文本,您可以使用不区分大小写的检查:

Assert.IsTrue(approvedBOm.Text.StartsWith("approved by ", StringComparison.InvariantCultureIgnoreCase))

我怀疑
IWebElement
(您在这里使用的是什么工具?)可能有更多的属性来获取其内容,而
.ToString()
为您提供了整个对象的表示,而不仅仅是要检查的内容。您指的是什么工具正在使用,您指的是selenium吗?是的-我指的是selenium,对IWebElement的搜索表明您可能正在使用它-参见我的答案。谢谢James,但不幸的是代码仍然失败,使用-Assert.IsTrue(approvedBOm.Text.StartsWith(“Approved By”);最好是在你的问题中编辑内容,而不是把它们放在评论中-完整的错误消息有助于etcI不理解你的问题James你说它失败了,它以什么方式失败了?
断言是否失败?您是否遇到了某种异常,可能是因为驱动程序没有找到它,所以
approvedBOm
为空?与其在这里回复注释,不如重新编辑您的问题并记录那里发生的事情。因为我正在进行单元测试,所以当我运行Nunit控制台时,该行代码的测试失败了