首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在angular-2表单控件中使用量角器?

如何在angular-2表单控件中使用量角器?
EN

Stack Overflow用户
提问于 2016-09-16 21:30:40
回答 3查看 3.1K关注 0票数 3

我刚开始在angular2中使用量角器。我已经用下面的量角器写了一个样本测试

代码语言:javascript
复制
<input type="text"  id="name">


describe('angularjs homepage', function() {
it('should say my name', function() {
    browser.get('http://localhost:3000/?');
var greeting =element(by.id('name') ).sendKeys('john');
expect(greeting.getAttribute('value')).toEqual('john');
});
});

这样做效果很好。但我使用的表单如下所示

代码语言:javascript
复制
<input type="text" [formControl]="testControl" />

我在输入control.Is中没有提到任何id,可以通过使用控件名来编写测试,比如var greeting=element(by.formcontrol('testControl')).sendKeys('john');,因为我不想在输入中提到Id's or names。如果我是wrong.Thank out.Correct,你们能帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-16 21:36:10

你可以尝试使用css选择器来定位输入吗?看看下面两个例子。

代码语言:javascript
复制
element(by.css("input[formControl='testControl']"))
票数 1
EN

Stack Overflow用户

发布于 2016-12-02 14:13:34

在这方面也遇到了困难,并得到了可以接受的答案。我最终创建了一个实用方法,如下所示:

代码语言:javascript
复制
const input = (name: string) => element(by.css('input[ng-reflect-name=\"' + name + '\"]'));

用法:

代码语言:javascript
复制
input('firstName').sendKeys('John');
票数 2
EN

Stack Overflow用户

发布于 2016-09-21 19:49:38

这可能是因为protractor试图在元素可见之前查找元素,就在browser.get()之后。CSS/XPath选择器通常可以工作,因此可以尝试这样做:

代码语言:javascript
复制
describe('angularjs homepage', function() {
    it('should say my name', function() {
        browser.get('http://localhost:3000/?');
        var EC= protractor.ExpectedConditions;
        browser.wait(EC.visibilityOf($('yourElementHere'), 60000);
        var greeting =element(by.id('name') ).sendKeys('john');
        expect(greeting.getAttribute('value')).toEqual('john');
    });
});

这将强制量角器在继续之前等待页面上特定元素的可见性(具有超时)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39532757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档