【问题标题】:How to locate [(ngModel)] for protractor tests如何为量角器测试定位 [(ngModel)]
【发布时间】:2016-04-02 20:28:56
【问题描述】:
<span class="selector-label">Team: </span>
<select class="selector-component" [(ngModel)]="selectedTeamId">
  <option *ngFor="#team of teams" [value]="team.id">{{team.name}}</option>
</select>

我正在尝试为 selectedTeamId 添加量角器测试,如果一个用户分配给多个团队,这是按字母顺序排序的第一个。我想我应该使用 [(ngModel)]="selectedTeamId",但不知道该怎么做。谢谢。 我知道如何获得所有团队,但我需要获得第一个在 selectedTeamId 方法中实现的逻辑。

【问题讨论】:

    标签: javascript angular protractor e2e-testing


    【解决方案1】:

    我们的想法是通过name 定位select 元素(例如,通过前面的标签)、evaluateteamssort it alphabetically,找到第一个团队并检查它是否相同作为selectedTeamId 模型值:

    var select = element(by.xpath("//span[starts-with(., 'Team')]/following-sibling::select"));
    
    select.evaluate("teams").then(function(teams) {
        teams.sort(function(a, b) {
             return a["name"].localeCompare(b["name"])
        });
        var firstTeam = teams[0];
    
        expect(select.evaluate("selectedTeamId")).toEqual(firstTeam);
    });
    

    【讨论】:

    • 嗨,alecxe。谢谢您的回复。我按照你的想法做了一些改变,但没有奏效。我收到“未知错误:未定义角度”错误。我没有使用 xpath 来查找“select”元素,而是使用了以下一个。而且我知道哪支球队将是第一支球队,并且正如预期的那样通过。所以代码如下所示,但它不起作用,所以我错过了。 var select = element(by.css('team-selector select'));期望(select.evaluate("selectedTeamId")).toEqual('ExpectedFirstTeam');
    • @qunzi 好吧,“角度未定义”听起来像是一个单独的问题,很可能与时间问题有关。请查看这些线程是否有帮助:stackoverflow.com/questions/28415318/…stackoverflow.com/questions/19391813/…
    • 基于 Julia Ralpha 航展,看起来 Protractor 还不支持这些新的 angualr 2 指令。
    猜你喜欢
    • 2015-07-25
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2013-12-06
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多