在Nightwatch.js中创建一个简单的基本页面对象

问题描述 投票:0回答:1

好的,所以我已经阅读了nightwatch.js中page_objects的使用,但我仍然遇到问题(我确信这是由于一些明显和/或简单的事情)。

使用http://nightwatchjs.org/guide/#page-objects作为指南,我在page_objects文件夹中添加了文件cookieremoval.js。

module.exports = {
  elements: {
    removeCookies: {
    selector: '.banner_continue--2NyXA'
    }
  }
}

在我的nightwatch.conf.js文件中,我有;

page_objects_path: "tests/functional/config/page_objects",

在我的测试脚本中,我有;

module.exports = {
  "/cars/road-tax redirects to /car-tax/ ": browser => {
  browser.url(browser.launch_url + browser.globals.carReviews)
    .assert.urlEquals(browser.launchUrl + "/car-reviews/") 
    .waitForElementPresent('@cookieRemove', 3000)
    .click('@cookieRemove')
  .end(); 
  },
};

但是,当我运行测试时,我一直在读错误;

Timed out while waiting for element <@cookieRemove> 

任何想法为什么这不起作用?

非常感谢

nightwatch.js pageobjects
1个回答
1
投票

首先,您从未实例化过页面对象。您要求浏览器对象搜索未知元素,这就是它超时的原因。您的代码应该在测试脚本中看起来像这样:var cookieRemoval = browser.page.cookieremoval();然后使用此对象访问页面对象中的那些变量和函数。例如,如果您想访问删除cookie元素,那么您将执行此cookieRemoval.click('@removeCookies');

其次,您必须知道何时使用全局browser对象以及何时使用页面对象。如果您需要访问页面对象中的某些内容,显然可以使用页面对象来调用函数或访问变量。否则,browser将不知道您正在寻找的元素存在。希望这能帮助你,我肯定会花更多的时间来学习对象,特别是它们如何在nightwatch.js中使用。

© www.soinside.com 2019 - 2024. All rights reserved.