繁体   English   中英

Javascript 文件如何从 JSON 文件中获取数据

[英]How can Javascript file fetch data from JSON file

我目前正在使用 Protractor 来测试某个网站,我想从 login-page-path.json 中获取其中一个值作为参数传递到 login.po.js

这是我的登录页面路径。json

{
    "loginPagePath": {
        "emailPath": "iEmail",
        "passPath": "inputPassword",
        "loginPath": "btnContinue"
    }
}

这是我的 login.po.js

module.exports = {

    inputEmail: (value) => {
        var emailPath = element(by.id("iEmail"));
        emailPath.sendKeys(value);
    },

    inputPassword: (value) => {
        var passPath = element(by.id("inputPassword"));
        passPath.sendKeys(value);
    },

    clickLoginButton: () => {
        var submitPath = element(by.className("btnContinue"));
        submitPath.click();
    }
}

这是我的 login.spec.js

let specPage = require('../page_objects/login.po.js');


describe('hello secret', function() {
    it('log in successfully', function() {
    
    browser.ignoreSynchronization = true;
    browser.get('https://hello.secret.net/login');
    
    browser.manage().window().maximize();
    browser.sleep(5000);

    specPage.inputEmail('secret@gmail.com');
    browser.sleep(5000);

    specPage.inputPassword('secret');
    browser.sleep(5000);
      
    });
  });
  

我希望我的 login.po.js 看起来像这样。 JSON 文件中的loginPagePath.emailPathloginPagePath.passPathloginPagePath.loginPath值将传递给那些 arguments

module.exports = {

    inputEmail: (value) => {
        var emailPath = element(by.id(loginPagePath.emailPath));
        emailPath.sendKeys(value);
    },

    inputPassword: (value) => {
        var passPath = element(by.id(loginPagePath.passPath));
        passPath.sendKeys(value);
    },

    clickLoginButton: () => {
        var submitPath = element(by.className(loginPagePath.loginPath));
        submitPath.click();
    }
}
let specPage = require('../page_objects/login.po');

足够了,不需要文件扩展名

假设 login-page-path.json 与 login.po.js 位于同一目录中(否则相应地更改路径):

let loginPagePath =  require("./login-page-path.json").loginPagePath 
module.exports = {

    inputEmail: (value) => {
        var emailPath = element(by.id(loginPagePath.emailPath));
        emailPath.sendKeys(value);
    },

    inputPassword: (value) => {
        var passPath = element(by.id(loginPagePath.passPath));
        passPath.sendKeys(value);
    },

    clickLoginButton: () => {
        var submitPath = element(by.className(loginPagePath.loginPath));
        submitPath.click();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM