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控制台时,该行代码的测试失败了