如何使用量角器验证是否显示验证消息

时间:2017-11-16 09:48:42

标签: jasmine protractor

测试用例:我只想验证"名称"字段通过发送"字母数字字符"数据一次一个地进入名称字段并验证"无效数据"验证消息是否显示

我的规范文件代码如下。

   //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)

有没有办法验证验证消息是否正在显示?

1 个答案:

答案 0 :(得分:0)

isDisplayed()总是需要元素的存在,因为它执行ElementFinder并返回它的错误。

如果确定要显示该元素,则该元素存在时,只需将isDisplayed()替换为isPresent()

否则检查if(element.isPresent()){expect(element.isDisplayed()).toBeFalsy()} else {expect(element.isPresent()).toBeFalsy()} ......虽然这样有点奇怪和冗长。