* Retrieves 'webSocketDebuggerUrl' by sending a http request using debugger address * @param {string} debuggerAddress * @param target * @param caps * @return {string} Returns parsed webSocketDebuggerUrl obtained from the http request
(debuggerAddress, target, caps)
| 1322 | * @return {string} Returns parsed webSocketDebuggerUrl obtained from the http request |
| 1323 | */ |
| 1324 | async getWsUrl(debuggerAddress, target, caps) { |
| 1325 | if (target && cdpTargets.indexOf(target.toLowerCase()) === -1) { |
| 1326 | throw new error.InvalidArgumentError('invalid target value') |
| 1327 | } |
| 1328 | |
| 1329 | if (debuggerAddress.match(/\/se\/cdp/)) { |
| 1330 | return debuggerAddress |
| 1331 | } |
| 1332 | |
| 1333 | let path |
| 1334 | if (target === 'page' && caps['map_'].get('browserName') !== 'firefox') { |
| 1335 | path = '/json' |
| 1336 | } else if (target === 'page' && caps['map_'].get('browserName') === 'firefox') { |
| 1337 | path = '/json/list' |
| 1338 | } else { |
| 1339 | path = '/json/version' |
| 1340 | } |
| 1341 | |
| 1342 | let request = new http.Request('GET', path) |
| 1343 | let client = new http.HttpClient('http://' + debuggerAddress) |
| 1344 | let response = await client.send(request) |
| 1345 | |
| 1346 | if (target.toLowerCase() === 'page') { |
| 1347 | return JSON.parse(response.body)[0]['webSocketDebuggerUrl'] |
| 1348 | } else { |
| 1349 | return JSON.parse(response.body)['webSocketDebuggerUrl'] |
| 1350 | } |
| 1351 | } |
| 1352 | |
| 1353 | /** |
| 1354 | * Sets a listener for Fetch.authRequired event from CDP |
no test coverage detected