testcafe
Version:
Automated browser testing for the modern web development stack.
36 lines • 4.82 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getActiveTab = exports.getFirstTab = exports.getTabById = exports.getTabs = void 0;
const chrome_remote_interface_1 = __importDefault(require("chrome-remote-interface"));
const DEVTOOLS_TAB_URL_REGEX = /^devtools:\/\/devtools/;
// NOTE: Github issue: https://github.com/DevExpress/testcafe/issues/8286
const CHROME_EXTENSION_TAB_URL_REGEX = /^chrome-extension:\/\//;
function isInternalUrl(url) {
return DEVTOOLS_TAB_URL_REGEX.test(url) || CHROME_EXTENSION_TAB_URL_REGEX.test(url);
}
async function getTabs(port) {
const tabs = await chrome_remote_interface_1.default.List({ port });
return tabs.filter(t => t.type === 'page' && !isInternalUrl(t.url));
}
exports.getTabs = getTabs;
async function getTabById(port, id) {
const tabs = await getTabs(port);
return tabs.find(tab => tab.id === id);
}
exports.getTabById = getTabById;
async function getFirstTab(port) {
const tabs = await getTabs(port);
return tabs[0];
}
exports.getFirstTab = getFirstTab;
async function getActiveTab(port, activeWindowId) {
const tabs = await getTabs(port);
if (activeWindowId)
return tabs.find(t => t.title.includes(activeWindowId));
return tabs[0];
}
exports.getActiveTab = getActiveTab;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0ZBQW1FO0FBRW5FLE1BQU0sc0JBQXNCLEdBQUcsd0JBQXdCLENBQUM7QUFDeEQseUVBQXlFO0FBQ3pFLE1BQU0sOEJBQThCLEdBQUcsd0JBQXdCLENBQUM7QUFFaEUsU0FBUyxhQUFhLENBQUUsR0FBVztJQUMvQixPQUFPLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVNLEtBQUssVUFBVSxPQUFPLENBQUUsSUFBWTtJQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLGlDQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUvQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBSkQsMEJBSUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUFFLElBQVksRUFBRSxFQUFVO0lBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFlLENBQUM7QUFDekQsQ0FBQztBQUpELGdDQUlDO0FBRU0sS0FBSyxVQUFVLFdBQVcsQ0FBRSxJQUFZO0lBQzNDLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFKRCxrQ0FJQztBQUVNLEtBQUssVUFBVSxZQUFZLENBQUUsSUFBWSxFQUFFLGNBQXNCO0lBQ3BFLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFlLENBQUM7SUFFMUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQztBQVBELG9DQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlbW90ZUNocm9tZSwgeyBUYXJnZXRJbmZvIH0gZnJvbSAnY2hyb21lLXJlbW90ZS1pbnRlcmZhY2UnO1xuXG5jb25zdCBERVZUT09MU19UQUJfVVJMX1JFR0VYID0gL15kZXZ0b29sczpcXC9cXC9kZXZ0b29scy87XG4vLyBOT1RFOiBHaXRodWIgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9EZXZFeHByZXNzL3Rlc3RjYWZlL2lzc3Vlcy84Mjg2XG5jb25zdCBDSFJPTUVfRVhURU5TSU9OX1RBQl9VUkxfUkVHRVggPSAvXmNocm9tZS1leHRlbnNpb246XFwvXFwvLztcblxuZnVuY3Rpb24gaXNJbnRlcm5hbFVybCAodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gREVWVE9PTFNfVEFCX1VSTF9SRUdFWC50ZXN0KHVybCkgfHwgQ0hST01FX0VYVEVOU0lPTl9UQUJfVVJMX1JFR0VYLnRlc3QodXJsKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFRhYnMgKHBvcnQ6IG51bWJlcik6IFByb21pc2U8VGFyZ2V0SW5mb1tdPiB7XG4gICAgY29uc3QgdGFicyA9IGF3YWl0IHJlbW90ZUNocm9tZS5MaXN0KHsgcG9ydCB9KTtcblxuICAgIHJldHVybiB0YWJzLmZpbHRlcih0ID0+IHQudHlwZSA9PT0gJ3BhZ2UnICYmICFpc0ludGVybmFsVXJsKHQudXJsKSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUYWJCeUlkIChwb3J0OiBudW1iZXIsIGlkOiBzdHJpbmcpOiBQcm9taXNlPFRhcmdldEluZm8+IHtcbiAgICBjb25zdCB0YWJzID0gYXdhaXQgZ2V0VGFicyhwb3J0KTtcblxuICAgIHJldHVybiB0YWJzLmZpbmQodGFiID0+IHRhYi5pZCA9PT0gaWQpIGFzIFRhcmdldEluZm87XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGaXJzdFRhYiAocG9ydDogbnVtYmVyKTogUHJvbWlzZTxUYXJnZXRJbmZvPiB7XG4gICAgY29uc3QgdGFicyA9IGF3YWl0IGdldFRhYnMocG9ydCk7XG5cbiAgICByZXR1cm4gdGFic1swXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFjdGl2ZVRhYiAocG9ydDogbnVtYmVyLCBhY3RpdmVXaW5kb3dJZDogc3RyaW5nKTogUHJvbWlzZTxUYXJnZXRJbmZvPiB7XG4gICAgY29uc3QgdGFicyA9IGF3YWl0IGdldFRhYnMocG9ydCk7XG5cbiAgICBpZiAoYWN0aXZlV2luZG93SWQpXG4gICAgICAgIHJldHVybiB0YWJzLmZpbmQodCA9PiB0LnRpdGxlLmluY2x1ZGVzKGFjdGl2ZVdpbmRvd0lkKSkgYXMgVGFyZ2V0SW5mbztcblxuICAgIHJldHVybiB0YWJzWzBdO1xufVxuIl19