We faced the same problem and decided to turn all the page objects and auxiliary files into node packages. Requiring them in tests is now as simple as var Header = require('header-po') . Another benefit of converting to packages is that you can use the correct version control.
Here is a simple example:
./page-objects/heading-ro/index.js
//page-objects/header-po/index.js 'use strict'; var Header = function () { this.goHome = function () { $('
./page-objects/heading-ro/package.json
{ "name": "header-po", "version": "0.1.1", "description": "Header page object", "main": "index.js", "dependencies": {} }
./package.json
{ "name": "e2e-test-framework", "version": "0.1.0", "description": "Test framework", "dependencies": { "jasmine": "^2.1.1", "header-po": "./page-objects/header-po/", } }
./tests/headings test.js
'use strict'; var Header = require('header-po'); var header = new Header(); describe('Header Test', function () { it('clicking logo in header bar should open homepage', function () { browser.get(browser.baseUrl + '/testpage'); header.goHome(); expect(browser.getCurrentUrl()).toBe(browser.baseUrl); }); });
finspin Jul 25 '15 at 8:17 2015-07-25 08:17
source share