Selenium失败的结果等于通过的测试

Selenium失败的结果等于通过的测试,selenium,Selenium,我正在创建测试用例以确认某些字段是必需的。提交表格时,如果未填写所有必填字段,则不应显示“成功”横幅。下面是我的代码片段,看看横幅是否显示在页面上 checkRequestConfirm = webDriver.FindElement(By.ClassName("apx-success-message")).Displayed; 这显然无法通过测试,因为横幅不存在。但那正是我想要的。我想让它通过,因为横幅没有显示。非常感谢您的任何建议!我知道我可能没有正确地处理这个问题,我愿意改进。如果您想检

我正在创建测试用例以确认某些字段是必需的。提交表格时,如果未填写所有必填字段,则不应显示“成功”横幅。下面是我的代码片段,看看横幅是否显示在页面上

checkRequestConfirm = webDriver.FindElement(By.ClassName("apx-success-message")).Displayed;

这显然无法通过测试,因为横幅不存在。但那正是我想要的。我想让它通过,因为横幅没有显示。非常感谢您的任何建议!我知道我可能没有正确地处理这个问题,我愿意改进。

如果您想检查横幅是否存在,我会等到加载其他元素(只是为了确保在横幅显示之前没有运行测试),然后使用:

checkRequestConfirm = webDriver.findElements(By.ClassName("apx-success-message")).size() == 0
如果要检查它是否可见,只需使用:

checkRequestConfirm = !webDriver.FindElement(By.ClassName("apx-success-message")).isDisplayed()

您可以进一步了解这些方法之间的差异。

这取决于您使用的框架。您没有指定语言,但我猜是C#?对于C#来说,有NUnit,或者如果您使用的是Java,则有JUnit、TestNG等。所有这些框架(以及其他框架)都有这样一个概念:如果布尔值为false,则通过测试

对于NUnit来说,语法类似于

Assert.False(webDriver.FindElement(By.ClassName("apx-success-message")).Displayed, "Success message is NOT present");
请在此处阅读更多信息:

如果您不使用框架,我强烈建议您为您使用的语言找到一个框架。

isDisplayed()方法不适合我。这是硒的延伸吗?