一尘不染

包含任何文本的元素的量角器预期条件

selenium

有没有一种方法可以检查元素中是否有文本?我已经找到了,textToBePresentInElement但是此函数检查指定的值,如果失败,则不会返回正确的错误。

我通过API填充元素,然后稍后将其加载,因此我希望浏览器等到元素中出现任何信息后再检查值是否正确。

另外,在EC发生故障时设法获得特定的错误消息也非常有帮助:

browser.wait(EC.textToBePresentInElement(element(by.binding('myvar')), "expected"), 5000);

阅读 193

收藏
2020-06-26

共1个答案

一尘不染

第三个参数browser.wait()是自定义错误消息:

browser.wait(EC.textToBePresentInElement(element(by.binding('myvar')), "expected"), 5000, "Text is not something I've expected");

要等待元素包含任何文本,可以编写 自定义期望条件

var EC = protractor.ExpectedConditions;

var anyTextToBePresentInElement = function(elementFinder) {
  var hasText = function() {
    return elementFinder.getText().then(function(actualText) {
      return actualText;
    });
  };
  return EC.and(EC.presenceOf(elementFinder), hasText);
};

这是用法:

browser.wait(anyTextToBePresentInElement(element(by.binding('myvar'))), 5000);
2020-06-26