首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Javascript名称空间在Protractor自动化中?

如何使用Javascript名称空间在Protractor自动化中?
EN

Stack Overflow用户
提问于 2016-11-18 06:04:47
回答 3查看 84关注 0票数 0

我有3个文件,即conf.js,actionwords.js,project_test.js。Actionwords.js和project_test.js是由hiptest tool.So生成的文件,我需要使用这个结构来自动化测试用例。当我运行cmd时,我得到了错误。

我跑了:

代码语言:javascript
运行
复制
protractor conf.js

消息:失败:无法读取未定义的属性“theApplicationURL”

堆栈:TypeError:无法读取未定义的属性“theApplicationURL”

// conf.js

代码语言:javascript
运行
复制
exports.config = {
 framework: 'jasmine2',
 directConnect: true,
 seleniumAddress: 'http://localhost:4444/wd/hub',
 specs:['path to/project_test.js'],
 capabilities: { 'browserName': 'chrome' }
 };

//actionwords.js

代码语言:javascript
运行
复制
var Actionwords = {
theApplicationURL: function () {
browser.get('localhost');
browser.driver.manage().window().maximize();
browser.sleep(5000);
   },
};

//project_test.js

代码语言:javascript
运行
复制
describe('Test', function () {
beforeEach(function () {
this.actionwords = Object.create(Actionwords);
});

it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function () {
// Given the application URL
this.actionwords.theApplicationURL();
});
});

有人能帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-18 06:50:05

以这种方式改变它:

代码语言:javascript
运行
复制
var actionwords = {
  theApplicationURL: function () {
    browser.get('localhost');
    browser.driver.manage().window().maximize();
    browser.sleep(5000);
  },
};

module.exports = actionwords;

测试:

代码语言:javascript
运行
复制
var actionwords = require("actionwords.js")

describe('Test', function () {
  it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function () {
    // Given the application URL
    actionwords.theApplicationURL();
  });
});

this**:**评论中的反应

可以在beforeEach中将其分配给此作用域。

代码语言:javascript
运行
复制
var actionwords = require("actionwords.js")

describe('Test', function () {
  beforeEach(function () {
    this.actionwords = actionwords;
  });
  it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function () {
    // Given the application URL
    this.actionwords.theApplicationURL();
  });
});
票数 3
EN

Stack Overflow用户

发布于 2016-11-18 06:15:44

beforeEach(...)中,this引用传递给它的匿名函数。it(...)也是如此。

describe范围内声明变量的

代码语言:javascript
运行
复制
describe('Test', function() {
    var actionwords = Object.create(Actionwords);

    it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function() {
        actionwords.toApplicationURL();
    });
});
票数 0
EN

Stack Overflow用户

发布于 2016-11-18 07:00:28

更新您的actionword.js如下,

代码语言:javascript
运行
复制
var Actionwords = {
theApplicationURL: function () {
  browser.get('localhost');
  browser.driver.manage().window().maximize();
  browser.sleep(5000);
 },
};
module.exports = new Actionwords();

你的project_test.js会像,

代码语言:javascript
运行
复制
this.actionwords = require("actionword.js");

describe('Test', function () {
 it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function () {
   this.actionwords.theApplicationURL();
 });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40670357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档