2015-01-26 30 views
7

için metin kutusuna yazdıktan sonra metni okumak için çalışılıyor Aşağıdaki kod var:Açıölçer: Benim html belgesinde e2e testi

<label class="field" for="first_name">First Name:</label> 
<span class="pull-right"><input type="text" id="first_name"> 
    name="first_name" ng-model="first_name"> 
</span> 

Bu söyleyerek yanında bana bir etiket ile bir metin kutusu verecektir "Ad ".

Sonra aşağıdaki kodu kullanarak metin kutusuna adımı yazdım

:

element(by.model('first_name')).sendKeys('Frank'); 

metin kutusuna Frank yazmak, ama şimdi amacım yapmak için bir metin kutusuna metin okumaya çalışmaktır bu kod Aslında benim adımı yazdığından emin. Bunu yaparken çok fazla sorun yaşıyorum.

ben metin kutusundan okumak için aşağıdaki kodu kullanarak çalıştı

:

expect(element(by.model('first_name')).getText()).to.equal('Frank'); 

Ama bu hata alıyorum:

console.log(element(by.model('first_name')).getText()); 
: i yapmaya çalıştıklarında Ayrıca

AssertionError: expected { Object (locator_, parentElementFinder_, ...) } to equal 'Frank'

Bu hatayı alıyorum:

{ locator_: { findElementsOverride: [Function], toString: [Function: toString] }, parentElementFinder_: null, opt_actionResult_: { then: [Function: then], cancel: [Function: cancel], isPending: [Function: isPending] }, opt_index_: undefined, click: [Function], sendKeys: [Function], getTagName: [Function],
getCssValue: [Function], getAttribute: [Function], getText: [Function], getSize: [Function], getLocation: [Function],
isEnabled: [Function], isSelected: [Function], submit: [Function], clear: [Function], isDisplayed: [Function], getOuterHtml: [Function], getInnerHtml: [Function], toWireValue: [Function] }

getAttribute('value')'u kullanmaya çalışırken aynı hatayı alıyorum. Hatanın tam olarak ne anlama geldiğinden emin değilim ve ben console.log() kullandığımda ne arıyorum emin değilim. Ben iletici kullanmak için biraz yeni. Herhangi bir yardım çok takdir ve zamanın önünde teşekkür ederim.

expect(element(by.model('first_name')).getAttribute('value')).toEqual('Frank'); 

gerçek sorun olmasıdır:

DÜZENLEME: TAM spec.js bu yana

var chai   = require('chai'), 
    chaiAsPromised = require('chai-as-promised'); 

chai.use(chaiAsPromised); 

expect = chai.expect; 

before(function() { 
    // suite wide initial setup here 
    browser.get("http://127.0.0.1:5000/"); 
    browser.waitForAngular(); 
}); 

it('Should redirect and load template',function(){ 
    element(by.id('authentication')) 
     .element(by.css('.text-center')) 
     .element(by.linkText('Click here')) 
     .click(); 
    expect(browser.getCurrentUrl()).to.eventually.have.string('/#/home'); 
}); 

it('Should Enter name into text box', function(){ 
    element(by.model('first_name')).sendKeys('Frank'); 
    expect(element(by.model('first_name')).getAttribute('value')) 
     .to.equal('Frank'); 
}); 

cevap

8

Çalıştığınız bir input unsurdur, sen value niteliğini okumak gerekir expect()'u geçersiz kılar - bu durumda söz vermeyi el ile then():

element(by.model('first_name')).getAttribute('value').then(function (value) { 
    expect(value).to.equal('Frank'); 
}); 
+0

Bunu zaten denedim ama aynı hatayı alıyorum: AssertionError: beklenen {Object (locator_, parentElementFinder_, ...)} eşittir 'Frank' – Frank

+0

@FrankInsana, özelliklerin tam kodunu gönderebilir ve iletki sürümü kullanıyor musunuz? Teşekkürler. – alecxe

+0

OMG Seni seviyorum! işe yarıyor!! Ayrıca ".then" kullanmayı denedim ama görünüşe göre yanlış yapıyordum. WOW TEŞEKKÜRLER !! +1 – Frank

İlgili konular