测试用例:我只想验证"名称"字段通过发送"字母数字字符"数据一次一个地进入名称字段并验证"无效数据"验证消息是否显示
我的规范文件代码如下。
//Testcase 3 : To verify whether "Name" field validation message is displaying or not
// "name field is a required" field
using(CertificationTestData.testData, function(testdata){
it('validation of Certificate Name field content',()=>{
//To clear the "Ceritication Name" field data
page.getCertificationNameField().clear();
//enter each type of test data one at a time
page.getCertificationNameField().sendKeys(testdata.data);
browser.driver.sleep(5000);
page.getAnyWhereCertificationPage().click();
//To check whether any validation message is displaying for "Name" field
expect(page.getValidationMessage().isDisplayed()).toBeFalsy();
});
});
我的外部测试数据文件位于
之下 testData :[
{data:"abcd"},
{data: "1234"},
{data:"!@#$%#"},
{data:"ad123!@##$"}
],
我的Po文件代码如下。
//To return "Certification Name" field
getCertificationNameField(){
return element(by.css('input[formcontrolname="CertificationsName"]'));
}
//To return validation message
getValidationMessage(){
return element(by.className('ui-message ui-messages-error ui-corner-all'));
}
当我运行我的测试脚本时,它显示以下错误消息。
should test certificate tab validation of Certificate Name field content
- 失败:找不到使用定位器的元素:By(css selector,.ui-message.ui-messages-error.ui-corner-all)
有没有办法验证验证消息是否正在显示?
答案 0 :(得分:0)
isDisplayed()
总是需要元素的存在,因为它执行ElementFinder并返回它的错误。
如果确定要显示该元素,则该元素存在时,只需将isDisplayed()
替换为isPresent()
。
否则检查if(element.isPresent()){expect(element.isDisplayed()).toBeFalsy()} else {expect(element.isPresent()).toBeFalsy()}
......虽然这样有点奇怪和冗长。