admin管理员组文章数量:1313806
In my html document I have the following code:
<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>
This will give me a textbox with a label next to it saying "First Name".
I then write my name in the textbox using the following code:
element(by.model('first_name')).sendKeys('Frank');
this code will write Frank in the text box, but now my goal is to try to read the text from the textbox to make sure that it actually wrote my name. I am having a lot of trouble doing this.
I tried using the following code to read from the text box:
expect(element(by.model('first_name')).getText()).to.equal('Frank');
But I get this Error:
AssertionError: expected { Object (locator_, parentElementFinder_, ...) } to equal 'Frank'
Also when i try to do a:
console.log(element(by.model('first_name')).getText());
I get this error:
{ 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] }
I get this same Error when trying to use getAttribute('value')
. I am not sure what the error means exactly and I'm not too sure what I am looking at when I use console.log()
. I am kinda new to using protractor. Any help is much appreciated and thank you ahead of time.
EDIT: FULL 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');
});
In my html document I have the following code:
<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>
This will give me a textbox with a label next to it saying "First Name".
I then write my name in the textbox using the following code:
element(by.model('first_name')).sendKeys('Frank');
this code will write Frank in the text box, but now my goal is to try to read the text from the textbox to make sure that it actually wrote my name. I am having a lot of trouble doing this.
I tried using the following code to read from the text box:
expect(element(by.model('first_name')).getText()).to.equal('Frank');
But I get this Error:
AssertionError: expected { Object (locator_, parentElementFinder_, ...) } to equal 'Frank'
Also when i try to do a:
console.log(element(by.model('first_name')).getText());
I get this error:
{ 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] }
I get this same Error when trying to use getAttribute('value')
. I am not sure what the error means exactly and I'm not too sure what I am looking at when I use console.log()
. I am kinda new to using protractor. Any help is much appreciated and thank you ahead of time.
EDIT: FULL 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');
});
Share
Improve this question
edited May 18, 2015 at 14:00
Dmitri Zaitsev
14.1k12 gold badges78 silver badges114 bronze badges
asked Jan 26, 2015 at 20:30
FrankFrank
2153 silver badges9 bronze badges
1 Answer
Reset to default 8Since this is an input
element you are working with, you need to read the value
attribute:
expect(element(by.model('first_name')).getAttribute('value')).toEqual('Frank');
The actual problem is that you are overriding the expect()
- in this case you need to resolve the promise manually using then()
:
element(by.model('first_name')).getAttribute('value').then(function (value) {
expect(value).to.equal('Frank');
});
本文标签: javascriptProtractor Trying to read text after writing to text box for e2e testingStack Overflow
版权声明:本文标题:javascript - Protractor: Trying to read text after writing to text box for e2e testing - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741888403a2403159.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论