2016-03-30 38 views
2

by.id benim giriş kutusu benim giriş sayfası içinde ama Açı ölçer ile aşağıdaki hata olsun:Birlikte kimlikleri kullanmaya çalışıyorum Açıölçer Testi hatası

İşte
Failed: No element found using locator: By css selector, *[id="signin--username"]) 

benim log olduğunu log-in.html gelen

var logIn = function() { 
    this.navigate = function() { 
     browser.get(browser.params.server); 
    }; 
    this.usernameInputBox = element(by.id('signin--username')); 
    this.passwordInputBox = element(by.id('signin--password')); 
    this.dontHaveAnAccountButton = element(by.id('signin--no-account-question')); 

    this.logInButton = element(by.id('signin--log-in')); 
    this.Modal = element(by.css('.modal-dialog')); 
    this.ModalButton = element(by.xpath('//*[@id="app"]/div[3]/div/div/form/div[3]/button')); 
}; 

module.exports = new logIn(); 

Snippet'ine in.js

<div class="form-group"> 
    <div class="input-group input-group-lg"> 
    <span class="input-group-addon"> 
     <span class="glyphicon glyphicon-user"></span> 
     </span> 
      <input type="text" 
      id="signin--username" 
      class="form-control" 
      placeholder="{{'username' | translate}}" 
      ng-model="username" 
      name="username" 
      required 
      autofocus data-autofill 
      > 
    </div> 
</div> 

Açıölçer Testi JavaScript Dosyası:

module.exports = function() { 
describe('Login Page', function() { 

    var loginPage = require('../pages/log-in.js'); 
    var saveScreenshot = require('../screenshot.js'); 

    beforeEach(function() { 
     loginPage.navigate(); 
    }) 

    it('should log in (with correct credentials)', function() { 
     browser.waitForAngular(); 
     loginPage.usernameInputBox.sendKeys('service'); 
     loginPage.passwordInputBox.sendKeys('s5rv1c5'); 
     loginPage.logInButton.click(); 
     browser.waitForAngular(); 
     expect(browser.getCurrentUrl()).toContain(browser.params.server + '#/jobs/my_jobs'); 
    }) 

    }); 
}; 

Herhangi bir yardım çok takdir! Teşekkürler.

cevap

0

Benzersiz seçiciyi doğru şekilde vermiyorsunuz. Bu yüzden bu hata oluşur.

element(by.model('username')).sendKeys('your user name');

Sana giriş metin kutusunun html verdiğini varsayalım kullanımı.

Bu yardımcı olur umarım. :)

+0

: adı alanında to become present için beklemek - sayfanın yüklenmesi için de beklemek gezinme sayfa nesne yöntemi geliştirin . Yine de yukarıda gösterildiği gibi kendi kodumu değiştirebilir miyim? İletken test dosyasını eklemek için yukarıda düzenledim. Şerefe! –

1

Bir zamanlama sorunu gibi görünüyor. Senin yöntemini yapmak olsaydı ben düzenleyip kodu bir sürü etrafında değiştirmek zorunda kalacak,

var logIn = function() { 
    this.usernameInputBox = element(by.id('signin--username')); 
    this.passwordInputBox = element(by.id('signin--password')); 
    this.dontHaveAnAccountButton = element(by.id('signin--no-account-question')); 

    // ... 

    this.navigate = function() { 
     browser.get(browser.params.server); 

     var EC = protractor.ExpectedConditions; 
     browser.wait(EC.presenceOf(this.usernameInputBox), 5000, "Username field is still not present"); 
    }; 
}; 
+0

Bunu denedim ama hala aynı hatayı alıyorum: –

+0

Ve ben de bu hatayı alıyorum: Kullanıcı adı alan yok, 5010ms sonra bekle bekleyin –

+0

@WebTech bu form iframe/frame içinde mi? – alecxe

İlgili konular