我正在尝试提供已成功更新记录的确认消息
HTML是:
<div class="hide">
<div class="fullRow">
<div class="notice success">
The user record has been updated.
<a href="#close" class="icon-remove"/>
</div>
我正在使用的C#代码是:
Assert.IsTrue(UserUpdateAdmin.IsAt, "Fialed to Update");
UserUpdateAdmin类包含以下内容:
public class UserUpdateAdmin
{
public static bool IsAt
{
get
{
var h1 = Driver.Instance.FindElements(By.ClassName("notice.success"));
if (h1.Count > 0)
return true;
return false;
}
它抛出异常: 类型
的例外&#39; Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException&#39;发生在Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll但未在用户代码中处理
其他信息:Assert.IsTrue失败。 Fialed to Update
答案 0 :(得分:0)
您使用的是By.ClassName()
,但它不能包含多个课程。您可以使用By.CssSelector()
解决此问题。我也简化了你的代码。
public static bool IsAt
{
get
{
return (Driver.Instance.FindElements(By.CssSelector("div.notice.success")).Count > 0);
}
}
注意:您的错误消息中有拼写错误,应该是&#34;无法更新&#34;。
建议:始终使用{}
s ...即使是1-liner if
,请参见下文。它可以防止混淆等。
if (h1.Count > 0)
{
return true;
}
答案 1 :(得分:-1)
如果您的类名包含空格,则按类名查找通常不起作用。尝试使用XPath:
var h1 = Driver.Instance.FindElements(By.XPath("//div[@class='notice success']"));