I start my protractor tests by running the following:
protractor protractor.conf.js --params.baseUrl=http://www.google.com --suite all
I would like to run a 'before launch' function which is dependant of one parameter (in this case, the baseUrl). Is it that possible?
exports.config = { seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar', seleniumPort: 4455, suites: { all: 'test/*/*.js', }, capabilities: { 'browserName': 'firefox' }, beforeLaunch: function() { console.log('I want to access my baseUrl parameter here: ' + config.params.baseUrl); }, onPrepare: function() { require('jasmine-reporters'); jasmine.getEnv().addReporter( new jasmine.JUnitXmlReporter('output/xmloutput', true, true)); } };
If I run that I get a ReferenceError because config is not defined. How should I do that? Is that even possible?
The configuration file tells Protractor how to set up the Selenium Server, which tests to run, how to set up the browsers, and which test framework to use. The configuration file can also include one or more global settings.
It is possible to set globals from the Protractor config file with the help of params property: exports. config = { // ... params: { glob: 'test' } // ... };
I am not completely sure if protractor globals are set at the beforeLaunch()
stage, but they are definitely available at onPrepare()
step.
Access the params
object through the global browser
object:
console.log(browser.params.baseUrl);
Update: Using Jasmine 2.6+, protractor 4.x, browser.params was empty, but the following worked in onPrepare()
step:
console.log(browser.baseUrl);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With