搜索了几个小时后,我不得不问......
我希望在页面上找到一串文字。具体来说,我希望确保根据用户的表单提交显示正确的错误。鉴于可能存在多个消息,以及我正在处理的Web应用程序,如果我可以将每个元素捕获到列表中,我认为我可以迭代列表并匹配字符串。
宁静-BDD对我来说是新手,我正在挖掘剧本(我的老板很喜欢报道),但我发现很难绕过其中一些(很好的演练例子很少)。另外,我对Selenium的经验也很少。
如果有人可以提供帮助,或者给我一些信息(除了serenity-bdd在线手册),我将非常感激。
答案 0 :(得分:2)
使用剧本模式,您可以编写问题,这些问题会返回您的表单错误,可以在BDD测试中进行检查。例如,我有一个表单,显示输入值旁边的错误。所有错误都有css类" .text-danger"。
匹配的public class FormErrors
implements Question<List<String>> {
public static FormErrors displayed() {
return new FormErrors();
}
@Override
public List<String> answeredBy( Actor actor ) {
return Text.of( EnterForm.FORM_ERRORS ).viewedBy( actor ).asList();
}
}
对象如下所示:
FORM_ERRORS
public static final Target FORM_ERRORS = Target.the( "Form Errors" ).locatedBy( ".text-danger" );
常量如下所示:
theActorInTheSpotlight().should(
seeThat( FormErrors.displayed(), is( errors ) )
);
所以我能够检查这样的错误:
ng-click="$mdOpenMenu(); AppCtrl.closeMdMenu();"
如何编写剧本测试的一个很好的例子是screenplay-pattern-todomvc项目。