Is there a way to store a saved screenshot in a specific directory rather than the default root folder? Thanks
You can specify the location to save a file within fs.writeFileSync()
.
For example, what you are currently doing is equivalent to:
driver.takeScreenshot().then(function(data) {
fs.writeFileSync('./Customer_Card.png', data, 'base64')
})
If you want to save your file somewhere else you simply have to include the path.
const path = require('path');
driver.takeScreenshot().then(function(data) {
fs.writeFileSync(path.joing(__dirname, 'innerDir', 'Customer_Card.png'), data, 'base64')
})
The above code would save your file to Customer_Card.png
inside of the innderDir
directory (which would be at the same place as the file where this code is).
So say for example I have the following project structure:
+ MyProjectDir
+---+ savePhoto.js
+---+ innerDir
After running the above code I would have:
+ MyProjectDir
+---+ savePhoto.js
+---+ innerDir
+---+---+Customer_Card.png
__dirname
is an environment variable that tells you the absolute path of the directory containing the currently executing file.
Alternatively, you can use a relative path like this to get the same effect:
driver.takeScreenshot().then(function(data) {
fs.writeFileSync('./innerDir/Customer_Card.png', data, 'base64')
})
Finally, if you want to go up a directory instead of into a directory you can do so like this:
driver.takeScreenshot().then(function(data) {
fs.writeFileSync('../Customer_Card.png', data, 'base64')
})
Again to clarify, If this was your project structure:
+ MyProjectDir
+---+ innerDir
+---+---+ savePhoto.js
Then running the above code (that is in savePhoto.js) would yield:
+ MyProjectDir
+---+ Customer_Card.png
+---+ innerDir
+---+---+ savePhoto.js
This can be extended so that you can save your file at ./innerDir/innerDir2/Customer_Card.png
or ../../../Customer_Card.png
or even ../../innerDir/Customer_Card.png
.