javascript - 如何组合多个 this.expect 语句

标签 javascript nightwatch.js pageobjects

我想创建一个方法来在执行下一个测试步骤之前验证所有着陆页对象是否都存在。以下是我目前所拥有的,但正在寻找一种更清洁的方法来实现这一目标。非常感谢任何建议。

verifyLandingPageNavElements:function(){
    this.expect.element('@NavLogo_img')
    .to.be.present.after(2000),
    this.expect.element('@BuySearch_nav')
    .to.be.present.after(2000),
    this.expect.element('@Sell_nav')
    .to.be.present.after(2000),
    this.expect.element('@Appraise_nav')
    .to.be.present.after(2000),
    this.expect.element('@Products_nav')
    .to.be.present.after(2000),
    this.expect.element('@LocateADealer_nav')
    .to.be.present.after(2000)
    this.expect.element('@Search_nav')
    .to.be.present.after(2000)
}, 

最佳答案

最好的方法是为此创建一个自定义命令。

// ./lib/custom-commands/expectElementsToBePresent.js

exports.command = function(selectors, ms) {
  selectors.forEach(selector => this.expect.element(selector).to.be.present.after(ms));
  return this;
};

// Test case

client
  .url('https://some.url')
  .expectElementsToBePresent([
    '.some.selector',
    '.another.selector'
  ], 2000);

不要忘记通过设置 custom_commands_path 属性,将 Nightwatch 指向保存自定义命令的目录(在我的示例中为 ./lib/custom-commands)配置文件。

如果您想了解有关自定义命令的更多信息,这里是官方文档的链接:http://nightwatchjs.org/guide#writing-custom-commands

关于javascript - 如何组合多个 this.expect 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48586555/

相关文章:

php - 带有 2 个文本字段的提示框

javascript - Node.js 与 mySQL -> 连接拒绝 127.0.0.1 : 3306

node.js - 期望元素不包含文本

java - 页面工厂模式和下拉列表

javascript - jQuery 数学公式问题 - 结果不正确或 NaN

javascript - 在表中显示 JQuery 的结果

testing - 如果 NightwatchJS 中的断言失败,则停止组测试

javascript - 无法读取试图进行任何操作的源文件夹

java - 如何使用 Selenium 和 Java 通过 PageFactory 等待元素不可见

javascript - Protractor executeScript 与 ElementArrayFinder 的怪异