将一个文件夹中的 .js 文件导入另一个文件夹中的 spec.js 文件时出错

Error when importing .js file in one folder to spec.js file in another folder

我是量角器的新手,正在尝试使用 POM 在黄瓜中创建一个项目。以下是项目的结构:

在 addCustomerPage.js 中,我提到了定位器以及执行测试的函数:

var addCustomerPage = function () {

    var BankManagerButton = element(by.buttonText('Bank Manager Login'));
    ***Other locators*****

    this.create = async function(fName,lName,pCode){
        await BankManagerButton.click();
        ****rest of the steps*****
    }
}
module.exports = new addCustomerPage();

但是在 spec.js 中导入上面的 class 时,在 运行 代码中,它会抛出错误:

E/launcher - Error: Error: Cannot find module '../pages/addCustomerPage'

以下是 spec.js 文件的代码:

var {
    setDefaultTimeout
} = require('cucumber');
const {
    expect
} = require('chai');
setDefaultTimeout(10 * 1000);
var addCustomerPage = require('../pages/addCustomerPage');
Given('I open the application and click on create customer button', async function () {
    **code*****
});

When('I enter {string}, {string}, {string}', async function (fname, lname, pcode) {
    return await addCustomerPage.create(fname, lname, pcode);
});

但是,如果 pages 文件夹位于 features 文件夹下,这就可以正常工作。任何人都可以帮助解决我在这里做错了什么吗?

../

上面的符号表示上一级文件目录。

当这样声明变量时...

var addCustomerPage = require('../pages/addCustomerPage');

...您的计算机将从当前目录向上一级文件夹并搜索 pages 文件夹,但找不到它。

当您复制 pages 文件夹并将其放在 feature 文件夹下时,它可以检测到它,因为它位于您搜索它的目录下

解决方法是:

  1. 只需将您的页面文件夹粘贴到功能下
  2. 将变量中的文件路径修改为你的pages文件夹所在的位置

我猜你必须上一两个目录,所以使用这个命令 ../ 到达你的页面文件夹所在的位置

var addCustomerPage = require('../../pages/addCustomerPage');

想法是将文件路径修改为页面文件夹所在的位置