Opening A File With Protractor
Solution 1:
I am posting the solution I've found in here which helped me run Protractor with a file protocol.
By default, Protractor use
data:text/html,<html></html>
asresetUrl
, butlocation.replace
from thedata:
to thefile:
protocol is not allowed (we'll get "not allowed local resource" error), so we replaceresetUrl
with one with thefile:
protocol:
exports.config = {
// ...baseUrl: 'file:///absolute/path/to/your/project/index.html',
onPrepare: function() {
// By default, Protractor use data:text/html,<html></html> as resetUrl, but // location.replace from the data: to the file: protocol is not allowed// (we'll get ‘not allowed local resource’ error), so we replace resetUrl with one// with the file: protocol (this particular one will open system's root folder)
browser.resetUrl = 'file://';
}
// ...
};
If you want to run a relative path to your project folder, then you could just use Node.js tools, because Protractor runs in a Node.js environment. For example, __dirname
will return an absolute path to a directory where your Protractor config file is saved. As a result use:
exports.config = {
// ...
baseUrl: 'file://' + __dirname + '/spec/support/index.html'// ...
};
Also, if you application does XHR requests to some endpoints, which are not allowed from file:
, you may have to run your test browser with custom flags. In my case it was Chrome:
exports.config = {
// ...
capabilities: {
browserName: 'chrome',
chromeOptions: {
// --allow-file-access-from-files - allow XHR from file://
args: ['allow-file-access-from-files']
}
}
// ...
}
Solution 2:
I had the same error and fixed by applying Michael Radionov's fix but removing the baseUrl. Here is my setup:
protractor.config.js:
exports.config = {
capabilities: {
browserName: 'chrome'
},
specs: [
'*.js'
],
onPrepare: function() {
// By default, Protractor use data:text/html,<html></html> as resetUrl, but // location.replace from the data: to the file: protocol is not allowed// (we'll get ‘not allowed local resource’ error), so we replace resetUrl with one// with the file: protocol (this particular one will open system's root folder)
browser.ignoreSynchronization = true;
browser.waitForAngular();
browser.sleep(500);
browser.resetUrl = 'file:///';
}
};
e2etest.js:
'use strict';
describe("Buttons' tests are started", function() {
it('Should retrieve 20 records into table', function() {
browser.get('file:///C:/Users/path_to_file/index.html');
/* Test codes here */
});
});
Solution 3:
What is the error log?
This could be something related to 'Loading' angular. For that you can try browser.driver.ignoreSynchronization = true;
The error log will surely help in trying to understand the problem.
Solution 4:
I think there is typo mistake. In "get" method you should include the URL in double quotes "".
Try using double quotes like below:
WebDriver driver=new FirefoxDriver();
driver.get('file:///E:/Programming%20Samples/HTML%20Samples/First%20Program.html');
Post a Comment for "Opening A File With Protractor"