Nel mio documento HTML ho il seguente codice:Goniometro: Cercando di leggere il testo dopo aver scritto alla casella di testo per il test e2e
<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>
Questo mi darà una casella di testo con un'etichetta accanto ad essa dicendo "Nome ".
Ho poi scrivere il mio nome nella casella di testo utilizzando il seguente codice:
element(by.model('first_name')).sendKeys('Frank');
questo codice scriverà Frank nella casella di testo, ma ora il mio obiettivo è quello di provare a leggere il testo dalla casella di testo per rendere sicuro che in realtà ha scritto il mio nome. Sto avendo molti problemi a farlo.
Ho provato ad utilizzare il seguente codice per leggere dalla casella di testo:
expect(element(by.model('first_name')).getText()).to.equal('Frank');
Ma ottengo questo errore:
AssertionError: expected { Object (locator_, parentElementFinder_, ...) } to equal 'Frank'
anche quando provo a fare un:
console.log(element(by.model('first_name')).getText());
Viene visualizzato questo errore:
{ 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] }
Ottengo lo stesso errore quando si tenta di utilizzare getAttribute('value')
. Non sono sicuro di cosa significhi esattamente l'errore e non sono sicuro di cosa sto guardando quando utilizzo console.log()
. Sono abbastanza nuovo nell'usare il goniometro. Qualsiasi aiuto è molto apprezzato e ti ringrazio in anticipo.
EDIT: spec.js PIENO
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');
});
Ho già provato questo, ma sto ottenendo lo stesso errore: AssertionError: expected {Object (locator_, parentElementFinder_, ...)} uguale a 'Frank' – Frank
@FrankInsana potresti pubblicare il codice completo delle tue specifiche e notare il versione del goniometro stai usando? Grazie. – alecxe
OMG TI AMO !!! Funziona!! ho provato a usare ".then" anche se a quanto pare stavo sbagliando. WOW GRAZIE!! +1 – Frank