量角器期望元素最终出现

2023-12-28

有没有办法期望元素最终出现在页面上?例如一种方式

browser.wait(protractor.ExpectedConditions.presenceOf(element(by.partialLinkText('Continue'))), 1000, 'Unable to find continue link');

因预期错误而不是超时而失败?本质上是一种拥有isEventuallyPresent()代替isPresent()在下面一行

expect(element(by.partialLinkText('Continue')).isPresent()).toBe(true);

作为参考,我正在使用browser.ignoreSynchronization = true即使它是一个 Angular 应用程序,并且使用 Jasmine(至少现在是这样)。


利用以下事实

  • browser.wait http://angular.github.io/protractor/#/api?view=webdriver.WebDriver.prototype.wait返回一个 Promise,一旦条件函数返回 true,该 Promise 就会被解决;如果超时则被拒绝。

  • If expect https://github.com/angular/jasminewd#features传递了一个 Promise,它只在 Promise 得到解决时才运行期望

您可以创建一个函数来包装对browser.wait

function eventual(expectedCondition) {
  return browser.wait(expectedCondition, 2000).then(function() {
    return true;
  }, function() {
    return false;
  });
}

然后创造一个期望

expect(eventual(protractor.ExpectedConditions.presenceOf(element(by.partialLinkText('Continue'))))).toBe(true);

或者,要使其在任何浏览器实例上工作,您可以对 Protractor 原型进行猴子修补

protractor.Protractor.prototype.eventual = function(expectedCondition) {
  return this.wait(expectedCondition, 2000).then(function() {
    return true;
  }, function() {
    return false;
  });
}

并可以用作

expect(browser.eventual(protractor.ExpectedConditions.presenceOf(element(by.partialLinkText('Continue'))))).toBe(true);

为了避免超时,您必须确保超时传递给browser.wait小于 Jasmine 异步测试超时,指定为jasmineNodeOpts: {defaultTimeoutInterval: timeout_in_millis} https://github.com/angular/protractor/blob/master/docs/timeouts.md#timeouts-from-jasmine在量角器配置文件中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

量角器期望元素最终出现 的相关文章

随机推荐

  • Tomcat 中的PreparedStatement 缓存

    我正在寻找一种实现PreparedStatement缓存的方法 以便节省为过去已经执行过的查询重新创建PreparedStatement对象的麻烦 是否有一些内置方法可以使用 Tomcat 实现此目的 或者我必须自己编程这个缓存 我相信to
  • jQuery post 调用导致“无法加载资源:net::ERR_INSUFFICIENT_RESOURCES”

    我有一个页面 允许用户上传和映射 CSV 文件 完成后 行将通过后调用发送到不同服务器上的页面 经过近 6 00 次调用 确切地说是 5787 次 后 我开始收到控制台错误 无法加载资源 net ERR INSUFFICIENT RESOU
  • 绑定源更新后 Wpf DatePicker 文本未更新

    我希望用户能够输入例如310312 并将日期选择器的文本属性自动更新为 31 03 12 我已将日期选择器绑定到视图模型 日期 属性 如下所示 在 WPF4 0 中 绑定现在会在设置后自动执行获取 不需要 INotifyPropertyCh
  • PDO 无法从数据库获取图像

    我在下面发布了我的代码 我可以从数据库中获取文本值 但是 我无法获取图像 我不知道我哪里做错了 try stmt conn gt prepare SELECT FROM ebusers conn gt errorInfo stmt gt e
  • 在 React 中 POST 之前禁用 OPTIONS 请求

    我有一个基于 Typescript 的 React 应用程序 托管在我的 PC 上 我使用 Spring gateway 将请求转发到另一个微服务 GET 请求工作正常 但对于 POST 请求我得到 从源 http localhost 30
  • 在 python 中将某些字符串(utf-8 或其他)转换为简单的 ASCII 字符串的简单方法是什么

    在我的 python 脚本中 我从一个我没有编写的函数中返回了一些字符串 它的编码各不相同 我需要将其转换为 ascii 格式 有没有一些万无一失的方法可以做到这一点 我不介意用空格或其他字符替换非 ASCII 字符 如果您想要一个明确代表
  • 在 Mercurial 中如何找到包含字符串的变更集?

    假设我有以下修改 rev 1 Dim Foo as integer rev 2 I like big butts I cannot lie rev 3 Dim Foo as integer Foo位于第 1 版和第 2 版中 并从第 3 版
  • 在 C# 中使用 SQLite.NET 获取最后一个插入 ID

    我有一个简单的问题 但解决方案并不那么简单 我目前正在将一些数据插入数据库 如下所示 kompenzacijeDataSet KompenzacijeRow kompenzacija kompenzacijeDataSet Kompenza
  • Visual Studio 2015 和 TFS - 所有排除的更改都会自动包含回来

    我在 Visual Studio 2013 中使用 TFS 效果很好 我最近切换到 VS 2015 但遇到了一个烦人的问题 bug 我有一堆排除的待定更改 我不想提交 但我想保留在本地 糟糕的开发环境 不要问 我的问题是 每次我重新打开 V
  • 将 numpy 数组作为列添加到 Pandas 数据框中

    我有一个形状 X Y 的 Pandas 数据框对象 如下所示 1 2 3 4 5 6 7 8 9 和形状 X Z 的 numpy 稀疏矩阵 CSC 看起来像这样 0 1 0 0 0 1 1 0 0 如何将矩阵中的内容添加到新命名列中的数据框
  • Maven - Nexus:查找依赖项目

    Nexus 中有没有办法找到依赖于特定依赖项的所有项目 我们的 Nexus 存储库中有一个项目列表 我们需要找到所有使用特定依赖项的项目 The Artifact 使用 Nexus 插件 https github com saleemsha
  • COUNT(*) 与 LEFT JOIN 和 GROUP BY 在 MySQL 中包含 NULL

    我正在尝试从表中获取结果 包括外部表中的出现计数 该表可以有 0 次或多次出现 就像下面的例子一样 表 颜色 id name 1 red 2 blue 3 yellow 4 green 表 水果 name color id apple 1
  • Python:为 __init__ 扩展 int 和 MRO

    在Python中 我试图扩展内置的 int 类型 这样做时 我想将一些关键字参数传递给构造函数 所以我这样做 class C int def init self val kwargs super C self init val Do som
  • 有没有我可以使用的文件选择器。我尝试了一些,但它们不起作用

    我尝试了几个文件选择器 但它们不起作用 请向我推荐一个带有示例代码的文件选择器 使用 file picker 包 也许 不工作你在android清单中写入权限
  • LINQ where 子句中的 async/await 不起作用

    我试图在 LINQ 语句中进行异步数据库查询 但遇到错误 下面的代码在没有 async await 的情况下运行良好 var newEntities repositoryMapping Mapper Map
  • 不同函子的容器

    我正在尝试找出一种方法来拥有函子容器 以便我可以将值传递给函子并对其进行修改 但是我无法让函子不受可以传递的类型和他们可以接受的论据数量 我对此的实际用途是我有一系列函子 它们都根据输入以某种方式更改 3D 向量 通过能够将这些函子存储在容
  • mkdir 的“-p”选项

    所以这似乎不是一个非常复杂的问题 但我找不到答案 我很困惑什么 p选项在 Unix 中起作用 我将它用于实验室作业 同时创建一个子目录 然后在该子目录中创建另一个子目录 它看起来像这样 mkdir p cmps012m lab1 这是一个具
  • 如何使用 Entity Framework 4.1“仅代码”流畅 API 映射 char 属性?

    我有一个具有 char 属性的对象 public class Product public char Code get set 实体框架似乎无法映射字符 当我从模型对象创建数据库架构时 数据库中缺少该字段 无论如何 我可以使用 Fluent
  • 在 Angular 5 上对 http 服务进行单元测试

    我对如何测试数据服务感到非常困惑 可能性太多 而且令人不知所措 我有这个简单的服务 Injectable export class DataService constructor private http HttpClient getDat
  • 量角器期望元素最终出现

    有没有办法期望元素最终出现在页面上 例如一种方式 browser wait protractor ExpectedConditions presenceOf element by partialLinkText Continue 1000