我正在编写一个简单的 Protractor 测试,该测试旨在检查单击按钮后某个输入标签是否包含文本。我已经尝试了一些方法,并且目前正在尝试使用protractor.ExpectedConditions来检查它是否包含任何文本。这是我的代码:

it("should click submit", function() {
    var EC = protractor.ExpectedConditions;
    var status = element(by.id('status'));
    $("#btnSubmitQuery").click();
    var condition = EC.textToBePresentInElement(status, 'C');
    browser.wait(condition, 8000, "Text is still not present");
    status.getText().then(function (text) {
        console.log(text);
    });
});

单击btnSubmitQuery后,将对服务器进行REST调用,但问题是我永远无法获得任何状态值。当我运行此代码时,即使我可以在元素中看到文本,浏览器也只是等待8秒钟然后关闭。什么都不会记录到控制台。有任何想法吗?

编辑:
我正在检查的html元素如下所示:
<td><input id="status" type="text" class="form-control" placeholder="PaxStatus ..." value="{{paxInformation.status}}"ng-readonly="true"></td>

最佳答案

它不应该更像这样:

condition = function () {
  return status.getAttribute('value').then(function (value) {
    return value.length > 0
  })
};
browser.wait(condition, 8000, "Text is still not present").then(function () {
  status.getAttribute('value').then(function (text) {
    console.log(text);
  })
});

10-07 18:56
查看更多