【问题标题】:Creating a simple, basic page object in Nightwatch.js在 Nightwatch.js 中创建一个简单的基本页面对象
【发布时间】:2019-02-15 17:47:27
【问题描述】:

好的,所以我已经阅读了 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】:

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

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

    【讨论】:

    • 太棒了,成功了。非常感谢您的帮助 Wayne K 和您的及时回复。我确实会花一些时间阅读和理解 nightwatch.js 的页面对象,因为我设想定期使用它们。再次感谢。
    猜你喜欢
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    相关资源
    最近更新 更多