【问题标题】:Protractor - Checking if input field has text量角器 - 检查输入字段是否有文本
【发布时间】:2020-02-27 01:12:02
【问题描述】:

我正在编写一个简单的量角器测试,旨在检查单击按钮后某个输入标记是否包含文本。我已经尝试了一些事情,我目前正在尝试使用 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>

【问题讨论】:

    标签: javascript angularjs jasmine protractor


    【解决方案1】:

    只是为了改进@maurycy 的答案。对于这种特殊情况,有一个 built-in Expected Condition

    var EC = protractor.ExpectedConditions;
    browser.wait(EC.textToBePresentInElementValue(status, 'C'), 5000)
    

    【讨论】:

    • 很好,我不知道
    【解决方案2】:

    不应该是这样吗:

    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);
      })
    });
    

    【讨论】:

    • 使用这种方法似乎工作得更好一些——浏览器不再等待整整 8 秒,但仍然没有记录文本的值。如果有帮助,我已经编辑了我的问题以包含 html 元素。
    • 这意味着条件已满,我认为现在的问题是您尝试获取输入文本,我已经编辑了答案,尝试使用getAttribute
    • 大功告成——现在是一种享受。谢谢一百万!
    • 看起来不错,这里的关键是 el.getAttribute('value) 如果我没记错的话,getText() 不会从输入字段中获取文本。它从标题和页面上的一般文本等内容中获取文本。 getAttribute('value) 从您作为网页用户输入值的元素中获取文本。
    【解决方案3】:

    我在用这个

    var EC = protractor.ExpectedConditions;
    var txt = browser.wait(EC.textToBePresentInElementValue(status, 'C'), 5000)
    
    return browser.wait(txt, 5000).catch(() => { 
    throw new Error('Text is still not presentt');});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 2014-10-19
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多