2015-02-23 29 views
7

如果這是一個新手問題,只需從Web自動化測試開始,我表示歉意。通過className使用量角器來查找按鈕

我想測試登錄屏幕頁面。找到名稱和密碼textfields很容易(只是使用by.model),但我有問題找到登錄按鈕與我的腳本。

我用Google搜索周圍,我應該能夠通過類名使用元素(by.css(.className)),但是這不能工作,我總是得到NoSuchElementError: No element found using locator: By.cssSelector(".btn btn-lg btn-primary btn-block")找到的元素。

任何想法我做錯了什麼?

感謝你在前進,

LoginBtn HTML:

<button class="btn btn-lg btn-primary btn-block" type="submit" ng-disabled="loading">login</button> 

我的代碼:

describe('Test login', function() { 
    var username = element(by.model('formData.email')); 
    var password = element(by.model('formData.password')); 
    var loginBtn = element(by.css('.btn btn-lg btn-primary btn-block')); 


    beforeEach(function() { 
    browser.get('some site'); //hidden on purpose 
    }); 

    it('should have a title', function() { 
     username.sendKeys(1); 
     password.sendKeys(2); 
     loginBtn.click(); 


    }); 


}); 

回答

12

如果要檢查多個類,他們用點分隔:

by.css('.btn.btn-lg.btn-primary.btn-block') 

雖然,我會找到的文字按鈕 - 看起來更可靠和可讀性:

by.xpath('//button[. = "login"]') 

此外,想想分配按鈕的id(如果這是你的控制之下)屬性簡化測試過程:

<button id="submitButton" class="btn btn-lg btn-primary btn-block" type="submit" ng-disabled="loading">login</button> 

那麼,這將是那麼容易,因爲:

by.id('submitButton') 
+0

謝謝。這兩個選項都有效:) – r3x 2015-02-24 08:41:49

2

您也可以只使用一個類來找到定位

by.css('.btn-primary')

類名

by.className('btn-primary')

相關問題