Files
webdriver/code/6-screenshot/webdriver.js
2023-08-01 13:11:28 +02:00

71 lines
1.9 KiB
JavaScript

var getScreenshot = function (session, cb) {
var request = new XMLHttpRequest();
request.open('GET', 'http://localhost:7020/session/' + session + '/screenshot', true);
request.setRequestHeader('Content-Type', 'application/json');
request.onload = function() {
cb(null, JSON.parse(request.responseText));
};
request.onerror = function() {
cb(arguments, null);
};
request.send();
};
var closeSession = function (session) {
var request = new XMLHttpRequest();
request.open('DELETE', 'http://localhost:7020/session/' + session, true);
request.setRequestHeader('Content-Type', 'application/json');
request.send();
};
var openUrl = function (url, session, cb) {
var request = new XMLHttpRequest();
request.open('POST', 'http://localhost:7020/session/' + session + '/url', true);
request.setRequestHeader('Content-Type', 'application/json');
request.onload = function() {
cb(null);
};
request.onerror = function() {
cb(arguments);
};
request.send(JSON.stringify({url: url}));
};
var getSession = function (cb) {
var request = new XMLHttpRequest();
request.open('POST', 'http://localhost:7020/session', true);
request.setRequestHeader('Content-Type', 'application/json');
request.onload = function() {
cb(null, JSON.parse(request.responseText));
};
request.onerror = function() {
cb(arguments, null);
};
request.send(JSON.stringify({
desiredCapabilities: {
browserName: 'phantomjs',
version: '',
platform: 'ANY'
}
}));
};
getSession(function (err, data) {
openUrl('http://reuter.de', data.sessionId, function (err) {
getScreenshot(data.sessionId, function (err, screenshot) {
var img = document.createElement('img');
img.src = 'data:image/png;base64,' + screenshot.value;
document.getElementsByTagName('body')[0].appendChild(img);
closeSession(data.sessionId);
});
});
});