私のhtmlドキュメントには、次のコードがあります。
<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>
これにより、横に「First Name」というラベルが付いたテキストボックスが表示されます。
次に、次のコードを使用して、テキスト ボックスに自分の名前を書き込みます。
element(by.model('first_name')).sendKeys('Frank');
このコードは、テキスト ボックスに Frank と書き込みますが、ここでの目標は、テキスト ボックスからテキストを読み取って、実際に私の名前が書き込まれていることを確認することです。私はこれを行うのに多くの問題を抱えています。
次のコードを使用して、テキスト ボックスから読み取ろうとしました。
expect(element(by.model('first_name')).getText()).to.equal('Frank');
しかし、私はこのエラーが発生します:
AssertionError: { Object (locator_, parentElementFinder_, ...) } が「Frank」と等しいと予想されます
また、私がやろうとすると:
console.log(element(by.model('first_name')).getText());
次のエラーが表示されます。
{ locator_: { findElementsOverride: [関数], toString: [関数: toString] }, parentElementFinder_: null, opt_actionResult_: { then: [関数: then], cancel: [関数: cancel], isPending: [関数: isPending] } , opt_index_: undefined, click: [関数], sendKeys: [関数], getTagName: [関数],
getCssValue: [関数], getAttribute: [関数], getText: [関数], getSize: [関数], getLocation: [関数]、
isEnabled: [関数]、isSelected: [関数]、submit: [関数]、clear: [関数]、isDisplayed: [関数]、getOuterHtml: [関数]、getInnerHtml: [関数]、toWireValue: [関数] }
を使用しようとすると、この同じエラーが発生しますgetAttribute('value')
。エラーの正確な意味がわからず、 を使用するときに何を見ているのかよくわかりませんconsole.log()
。私は分度器を使うのが初めてです。どんな助けでも大歓迎です。事前に感謝します。
編集: 完全な spec.js
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');
});