2016-04-28 28 views
1

我是量角器新手,現在我的問題是如何在登錄時獲得Bootstrap警報消息文本。警報信息元素定義index.html中只有一次如何在用戶登錄時獲取Bootstrap警報文本

var email = element(by.model('login_vm.loginData.lmail')); 
    var password = element(by.model('login_vm.loginData.lpass')); 
    var loginButton = element(by.css('.btn.btn-primary.btn-lg.btn-submit')); 
    var error = element(by.css('.hehehsandeep')); 

    it('should redirect to login page', function() { 
     browser.get('http://localhost:8000/login'); 
     loginURL = browser.getCurrentUrl(); 
    }); 

    it('should expect valid email and password', function() { 
     email.sendKeys('[email protected]'); 
     password.sendKeys('sandeep'); 
     loginButton.click(); 
     expect(error.getText()).toMatch('Welcome! sandeep ([email protected])'); 
    }); 

登錄成功運行,但是當比賽與錯誤訊息顯示結果命令提示符:

Failures: 
1) Authentication Capabilties should expect valid email and password 
    Message: 
    Expected 'Welcome! sandeep ([email protected])' to match 'Welcome! sandeep ([email protected])'. 

請幫我....

+0

如果你嘗試'toEqual'或'什麼toBe',它仍然會拋出錯誤? – Gunderson

回答

1

即使你把:

expect('Welcome! sandeep ([email protected])').toMatch('Welcome! sandeep ([email protected])'); 

你仍然可以得到:

預計'歡迎光臨! sandeep([email protected])'匹配'歡迎! sandeep([email protected])'。

問題是toMatch()接受參數並將其解釋爲正則表達式。有些字符在正則表達式中有特殊含義,如!,()。爲了讓這些字符用作文字,你需要轉義:

expect('Welcome! sandeep ([email protected])').toMatch('Welcome\! sandeep \([email protected]\)'); 

雖然,很容易將使用toEqual()代替:

expect('Welcome! sandeep ([email protected])').toEqual('Welcome! sandeep ([email protected])'); 
+0

我總是從你的答案中學到些東西:) – Gunderson

+0

@Gunderson謝謝!我正在從你那裏學習,希望能在你身上看到更多。 – alecxe